Mybatis学习笔记-mybatis调用存储过程
来源:互联网 发布:win10 ubuntu双系统 编辑:程序博客网 时间:2024/05/17 08:26
本文记录的是Mybatis调用Mysql存储过程的案例,学习源码已经上传至GitHub,有兴趣的童鞋可以下载,相互学习。
功能需求
项目过程中,对于性别这些数据,数据库存的是一般是对应代码,前台显示的汉字描述,查询的时候就会出现,查询男性或女性的数量,如果传入的是0就女性否则是男性。
测试数据
create table p_user( id int primary key auto_increment, name varchar(10), sex char(2)); insert into p_user(name,sex) values('A',"男"); insert into p_user(name,sex) values('B',"女"); insert into p_user(name,sex) values('C',"男"); #创建存储过程(查询得到男性或女性的数量, 如果传入的是0就女性否则是男性)DELIMITER $CREATE PROCEDURE mybatis.ges_user_count(IN sex_id INT, OUT user_count INT)BEGIN IF sex_id=0 THENSELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='女' INTO user_count;ELSESELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='男' INTO user_count;END IF;END $#调用存储过程DELIMITER ;SET @user_count = 0;CALL mybatis.ges_user_count(1, @user_count);SELECT @user_count;
创建对应的实体表
public class User { private String id; private String name; private String sex; //省略set get ToString()等方法。}
配置Mappler映射文件
<!-- 测试调用存储过程 --><select id="getUserCount" statementType="CALLABLE" parameterMap="getCount"> call mybatis.ges_user_count(?,?)</select><parameterMap type="java.util.Map" id="getCountMap"> <parameter property="sex_id" mode="IN" javaType="INTEGER" /> <parameter property="user_count" mode="OUT" jdbcType="INTEGER" /></parameterMap>
测试以及测试结果
@Testpublic void testGetUserSexCount() { // 注意此处默认不是自动提交事务的 SqlSession session = MybatisUtils.getFactory().openSession(true);// 创建自动提交事物的Session对象 String sql = "mapper.userMapper.getUserCount"; Map<String, Integer> paramMap = new HashMap<>(); paramMap.put("sex_id", 2); session.selectOne(sql, paramMap); Integer userCount = paramMap.get("user_count"); logger.info("满足条件的人数:" + userCount);}
阅读全文
0 0
- Mybatis学习笔记-mybatis调用存储过程
- Mybatis学习笔记-调用存储过程
- myBatis学习笔记(7)——调用存储过程
- MyBatis调用存储过程
- mybatis调用存储过程
- mybatis调用存储过程
- mybatis调用存储过程
- mybatis调用存储过程
- Mybatis调用存储过程
- mybatis调用存储过程
- mybatis调用存储过程
- mybatis调用存储过程
- mybatis调用存储过程
- MyBatis调用存储过程
- mybatis 调用存储过程
- Mybatis调用存储过程
- MyBatis调用存储过程
- mybatis调用存储过程
- Spring4.X整合hibernate5.X之事物管理
- JS定时器
- 创建带头结点链表的方法
- python学习(2)--变量与表达式
- 杨辉三角
- Mybatis学习笔记-mybatis调用存储过程
- [Floyd] codevs1077
- LVM example
- 蓝桥杯嵌入式第一天——感悟与碰到的一些问题
- 第八周项目4 三元组稀疏矩阵表示
- PCA降维
- PHP命名空间(Namespace)的使用浅析
- Python源码剖析(02 Python对象初探)
- 第8周项目4-稀疏矩阵的三元组表示的实现及应用(2)