mybatis调用存储过程实例
2015-10-05 17:59
465 查看
sqlMap:
存储过程:
调用:
Map<String, Object> getOneMap = new HashMap<String, Object>();
getOneMap.put("userId", sysUser.getUserId());
<select id="proc_name" statementType="CALLABLE" parameterType="java.util.HashMap" resultType="java.lang.Integer"> { call proc_name( #{userId,mode=IN,jdbcType=INTEGER}, #{auditPoolId,mode=OUT,jdbcType=VARCHAR} ) } </select>
存储过程:
DELIMITER $$ CREATE PROCEDURE `databaseName`.`proc_name` (IN userId BIGINT(20), OUT auditPoolId INT) BEGIN DECLARE v_totalCount INT ; DECLARE v_borrowId INT ; -- 我的数量 SELECT COUNT(*) totalCount FROM fk_audit_pool t WHERE t.status = '1' AND t.checkout_user_id = userId INTO v_totalCount ; IF v_totalCount < 10 THEN -- 获取最老的一条数据 SELECT id, t.xd_borrow_form_id FROM fk_audit_pool t WHERE t.xd_borrow_form_id = (SELECT MAX(t.xd_borrow_form_id) FROM fk_audit_pool t WHERE t.status = '0') INTO auditPoolId,v_borrowId ; -- 修改状态 UPDATE fk_audit_pool t SET t.status = '1', t.checkout_user_id = userId, t.checkout_time = SYSDATE() WHERE t.xd_borrow_form_id = v_borrowId ; END IF ; END $$ DELIMITER ;
调用:
Map<String, Object> getOneMap = new HashMap<String, Object>();
getOneMap.put("userId", sysUser.getUserId());
dao.getOne("proc_name",paraMap); Integer id = (Integer) paraMap.get("auditPoolId");//存储过程的output参数,只能通过传入的map获取
相关文章推荐
- 从输入 URL 到页面加载完成的过程中都发生了什么事情?
- Gson解析(4)——Map处理数据(下)
- Hadoop2.6.0遇到的问题
- Hadoop2.6.0防止误删机制-Trash
- 菜鸟的Linux历程-Apache源码包安装及知识点摘要
- iOS 关于应用能打包但是不能提交至App Store的解决办法
- Hadoop mapreduce自定义分组RawComparator
- [笔试时]SQL练练手
- 用js判断页面是否加载完毕
- var_dump($user);die;
- CentOS 7 如何设置默认启动方式为命令行模式
- Gson解析(3)——Map处理数据(上)
- Mac OS X10.11(OS X EI Capitan)安装程序下载
- Android 自定义View (一)
- Hadoop Yarn内存使用优化配置
- HTablePool的实现分析
- 【总结】Java基础总结⑷
- 我的GDataXML类的联系代码和总结
- LeetCode OJ:Two Sum(两数之和)
- revit二次开发--获取element的三种方法