Mybatis oracle存储过程回来记录集

Mybatis oracle存储过程返回记录集

  最近使用mybatis调用存储过程返回记录集,不过网上查了很久没找到合适的例子,最后参考了http://mybatis.googlecode.com/svn/trunk/src/test/java/org/apache/ibatis/submitted/refcursor/的代码后,终于搞出来了。记不来给碰到相同问题的兄弟作个参考。

 

  首先,我的mybatis的代码是根据ufopw(非常nice的一高手,哈哈)的

Mybatis分页-利用Mybatis Generator插件生成基于数据库方言的分页语句,统计记录总数生成的,非常方便。

 

 不多说了,直接上代码,码友都懂的。

 

    存储过程:

  create or replace procedure getUserBy(
  V_USERID   IN  NUMBER,
  V_CURSOR   OUT SYS_REFCURSOR
) is
begin
   OPEN  V_CURSOR FOR SELECT * from sys_user WHERE userid = V_USERID;
end getUserBy;
 

   Mapper.xml

<update id="selectUserBy" statementType="CALLABLE" parameterType="map">     
          <![CDATA[
		  call getuserby(#{userid,mode=IN,jdbcType=DECIMAL},
		                 #{users,mode=OUT,jdbcType=CURSOR,javaType=java.sql.ResultSet,resultMap=com.test.persistence.SysUserMapper.BaseResultMap})
	    ]]>
</update>

 

    Mapper.java

void selectUserBy(Map<String, Object> params);

 

    调用

	public List<SysUser> getprocedure() {
		Map<String, Object> parameter = new HashMap<String, Object>();
		parameter.put("userid", 1000);
		sysUserMapper.selectUserBy(parameter);
		return (List<SysUser>)parameter.get("users");
	}

 

   以上。


我的异常网推荐解决方案:oracle存储过程,http://www..net/oracle-develop/177537.html