Mybatis oracle存储过程回来记录集
Mybatis oracle存储过程返回记录集
我的异常网推荐解决方案:oracle存储过程,http://www..net/oracle-develop/177537.html
最近使用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