设为首页 收藏本站
查看: 427|回复: 0

[经验分享] ibatis中mysql存储过程返回结果集

[复制链接]

尚未签到

发表于 2016-10-18 07:34:10 | 显示全部楼层 |阅读模式
mysql存储过程可以直接返回结果集,同时可以有out参数
例如:
存储过程:
  

view plaincopy to clipboardprint?
CREATE PROCEDURE `test`   
(IN _login VARCHAR(32),   
IN _psw VARCHAR(32),   
OUT _ret INTEGER(10),   
OUT _id INTEGER(10),   
OUT _name VARCHAR(32),   
OUT _email VARCHAR(32),   
OUT _phone VARCHAR(20),   
OUT _active INTEGER(11))     //同时返回多个结果集合   
  
BEGIN   
    DECLARE CONTINUE HANDLER FOR NOT FOUND set _ret =-1;   
    set _ret = 0 ;   
  
    select id,name,email,phone,active   
    into _id,_name,_email,_phone,_active   
    from test   
    where tx_account.`loginname`=_login and tx_account.`password`=MD5(_psw) and active=1;   
    ---------返回结果集-----   
    if _ret = 0 then   
       select a.id as id ,a.name as name,a.priority as priority   
       from test b left join test1 a on b.role=a.id   
       where b.account=_id;   
    end if;   
END;   
  
  
直接返回结果集   
ibatis文件   
<parameterMap id="testParameterMap" class="params">   
    <parameter property="loginname" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>   
    <parameter property="password" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"/>   
    <parameter property="ret" jdbcType="INTEGER" javaType="java.lang.Integer" mode="OUT"/>   
    <parameter property="id" jdbcType="INTEGER" javaType="java.lang.Integer" mode="OUT"/>      
    <parameter property="name" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT"/>   
    <parameter property="phone" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT"/>   
    <parameter property="email" jdbcType="VARCHAR" javaType="java.lang.String" mode="OUT"/>   
    <parameter property="active" jdbcType="INTEGER" javaType="java.lang.Integer" mode="OUT"/>   
</parameterMap>   
  
<procedure id="test" parameterMap="testMap" resultMap="AccountRoleResultMap">   
    {call test(?,?,?,?,?,?,?,?)}   
</procedure>   
      
dao 的实现   
定义一个传参的map params ,   
  
   HashMap<String,Object> params = new HashMap<String,Object>();   
   //把需要的参数放到map中   
   params.put("id",account.getId());   
   params.put("ret",null);   
   params.put("loginname", null);   
   params.put("name", null);   
   params.put("email", null);   
   params.put("phone",null);   
   params.put("active", null);   
//定义一个list   
   List list=null;   
    list= (List)(getSqlMapClientTemplate().queryForList("test",params));   
   //上面这样操作就可以获得存储过程返回的结果集。   
    Object var;   
    var = params.get("ret"); //从map 中获得制定的输出参数的值。  



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yangzl0123/archive/2009/10/29/4743721.aspx

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

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-287644-1-1.html 上篇帖子: MySQL数据库中的Show命令具体用法 下篇帖子: 百万级高并发网站MYSQL应用攻略
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表