MyBatis学习总结——调用存储过程
2019独角兽企业重金招聘Python工程师标准>>>
MyBatis学习总结(——调用存储过程
一、提出需求
查询得到男性或女性的数量, 如果传入的是0就女性否则是男性
二、准备数据库表和存储过程
1 create table p_user( 2 id int primary key auto_increment, 3 name varchar(10),4 sex char(2)5 ); 6 7 insert into p_user(name,sex) values('A',"男"); 8 insert into p_user(name,sex) values('B',"女"); 9 insert into p_user(name,sex) values('C',"男"); 10 11 -- 创建存储过程(查询得到男性或女性的数量, 如果传入的是0就女性否则是男性) 12 DELIMITER $ 13 CREATE PROCEDURE mybatis.ges_user_count(IN sex_id INT, OUT user_count INT) 14 BEGIN 15 IF sex_id=0 THEN 16 SELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='女' INTO user_count; 17 ELSE 18 SELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='男' INTO user_count; 19 END IF; 20 END 21 $ 22 23 -- 调用存储过程 24 DELIMITER ; 25 SET @user_count = 0; 26 CALL mybatis.ges_user_count(1, @user_count); 27 SELECT @user_count;
三、编辑userMapper.xml
编辑userMapper.xml文件,添加如下的配置项
1 <!-- 2 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性3 -->4 <select id="getUserCount" parameterMap="getUserCountMap" statementType="CALLABLE">5 CALL mybatis.ges_user_count(?,?)6 </select>7 8 <!--9 parameterMap.put("sexid", 0); 10 parameterMap.put("usercount", -1); 11 --> 12 <parameterMap type="java.util.Map" id="getUserCountMap"> 13 <parameter property="sexid" mode="IN" jdbcType="INTEGER"/> 14 <parameter property="usercount" mode="OUT" jdbcType="INTEGER"/> 15 </parameterMap>
四、编写单元测试代码
1 package me.gacl.test;2 3 import java.util.HashMap;4 import java.util.List;5 import java.util.Map;6 7 import me.gacl.custom.model.ConditionUser;8 import me.gacl.domain.User;9 import me.gacl.util.MyBatisUtil; 10 import org.apache.ibatis.session.SqlSession; 11 import org.junit.Test; 12 13 /** 14 * @author gacl 15 * 测试调用存储过程 16 */ 17 public class Test6 { 18 19 @Test 20 public void testGetUserCount(){ 21 SqlSession sqlSession = MyBatisUtil.getSqlSession(); 22 /** 23 * 映射sql的标识字符串, 24 * me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值, 25 * getUserCount是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL 26 */ 27 String statement = "me.gacl.mapping.userMapper.getUserCount";//映射sql的标识字符串 28 Map<String, Integer> parameterMap = new HashMap<String, Integer>(); 29 parameterMap.put("sexid", 1); 30 parameterMap.put("usercount", -1); 31 sqlSession.selectOne(statement, parameterMap); 32 Integer result = parameterMap.get("usercount"); 33 System.out.println(result); 34 sqlSession.close(); 35 } 36 }
转载于:https://my.oschina.net/chendongj/blog/711066
MyBatis学习总结——调用存储过程相关推荐
- MyBatis入门学习教程-调用存储过程
一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 1 create table p_user( 2 id int primary key auto_ ...
- mybatis注解方式调用存储过程
1.建立存储过程: CREATE DEFINER=`root`@`%` PROCEDURE `p_dmk_fsyx`(v_month VARCHAR(6),v_type VARCHAR(2),OUT ...
- SpringMVC与Mybatis集合实现调用存储过程、事务控制
在SSM框架中经常会用到调用数据库中的存储过程.以及事务控制,下面以保存某单据为例,介绍一下: 1.Oracle中存储过程代码如下(主要逻辑将单据编码自动加1,并将该单据编码返回): CREATE O ...
- mybatis mysql 关于调用存储过程获取查询结果
背景: 由于使用了存储过程进行坚转横的动态查询,查询出来的列是不固定的,也就无法使用实体对象自动转换:但关于查询结果返回困扰了很久,网上很多都是将查询结果做为游标 out 输出,但本人试了很多方法, ...
- 【Mybatis学习总结七】调用存储过程
今天这节课本来可以一小时结束的,我却从三点半搞到了九点.我觉得我是世界上最S13的人!!!没有之一!!!!一个小错害我花了一个晚上的时间去寻找,真是够无语的.好了,言归正传,还是先总结下今天学习的内容 ...
- MyBatis学习总结(六)——调用存储过程
一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 1 create table p_user( 2 id int primary key auto_ ...
- MyBatis调用存储过程,MyBatis调用函数的使用方法
MyBatis调用存储过程,MyBatis调用函数的使用方法 一.MyBatis 调用存储过程 1.不带参数的 <select id="batchAnalyzeAll" st ...
- MyBatis中调用存储过程和函数
一.调用存储过程 1.首先在数据库中定义存储过程,定义的存储过程的代码如下: //定义存储过程create or replace procedure pag_add(p1 varchar2,p2 va ...
- mybatis调用mysql存储过程_秒会mybatis调用存储过程(MySQL)
一.简介 有的时候,我们不方便自己写SQL,而是只能调用别人提供的存储过程,那如何使用mybatis调用存储过程呢? 二.示例步骤(MySQL) 2.1 准备一张表 DROP TABLE IF EXI ...
- mybatis 调用存储过程
1.定义存储过程 2.调用存储过程 <!-- public void getPageByProcedure(); 1.使用select标签定义调用存储过程2.statementType=&quo ...
最新文章
- Gradle构建脚本概要之构建块
- 深入SecureFile—新一代LOB揭秘000
- [crypto]-05-转载:PKCS #1 RSA Encryption Version 1.5介绍
- STL之Map和MFC之CMap比较学习
- 五十六、从高中碾转相除法、更相减损术算法谈起
- 在c语言中函数的定义变量的值为,变量定义(C语言中变量的声明和定义)
- IntelliJ IDEA for Mac 中 Java Web Project 默认的工件(Artifacts)输出目录
- 【学神-RHEL7】1-3-Linux基本命令和配置服务器来电后自动开机
- java socket数据传输_Java Socket编程(一) Socket传输模式
- Judy alpha 第七天
- 带你自学Python系列(十二):Python函数的用法(二)
- 集群搭建预备操作:在私有云上创建与配置虚拟机
- ubuntu下点击安装VMware tools,没有压缩包文件
- rocketMq消息重复消费问题
- html经过菜单变色移开恢复,h5学习笔记:transition菜单过渡变色
- 语义分析的一些方法(一)
- 《高斯牛顿优化算法--第一讲》原理推导
- 线性调频信号学习笔记
- 中药的专利标准化研究
- 基于物联网技术的3DGIS智慧园区信息系统研究
热门文章
- update mysql.user set password_修改mysql密码
- html中如何禁用,如何禁用HTML链接
- LOL暗影岛服务器维修,LOL各大区服务器的地点
- 方舟生存进化联机显示没有找到服务器,方舟生存进化搭建服务器联机教程_方舟生存进化怎么联机_牛游戏网...
- springmvc以html作为视图_SpringMVC如何自定义视图
- 自己学java需要多久_自学 java, 学多久可以自己找到工作?
- java队列和栈实现原理_Java特性队列和栈的堵塞原理解析
- Selenium中的xpath定位
- Hadoop学习笔记三
- 推荐一个非常好用的进程管理器