最近使用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");
}
以上。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com