博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis学习总结(六)——调用存储过程
阅读量:6849 次
发布时间:2019-06-26

本文共 1958 字,大约阅读时间需要 6 分钟。

一、提出需求

  查询得到男性或女性的数量, 如果传入的是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;

 

三、编辑userMapper.xml

  编辑userMapper.xml文件,添加如下的配置项

 四、编写单元测试代码

package me.gacl.test;import java.util.HashMap;import java.util.List;import java.util.Map;import me.gacl.custom.model.ConditionUser;import me.gacl.domain.User;import me.gacl.util.MyBatisUtil;import org.apache.ibatis.session.SqlSession;import org.junit.Test;/** * @author gacl * 测试调用存储过程 */public class Test6 {        @Test    public void testGetUserCount(){        SqlSession sqlSession = MyBatisUtil.getSqlSession();        /**         * 映射sql的标识字符串,         * me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,         * getUserCount是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL         */        String statement = "me.gacl.mapping.userMapper.getUserCount";//映射sql的标识字符串        Map
parameterMap = new HashMap
(); parameterMap.put("sexid", 1); parameterMap.put("usercount", -1); sqlSession.selectOne(statement, parameterMap); Integer result = parameterMap.get("usercount"); System.out.println(result); sqlSession.close(); }}

 

转载于:https://www.cnblogs.com/MaxElephant/p/8117728.html

你可能感兴趣的文章
《Head first HTML与CSS 第二版》读书笔记 第九章 盒模型
查看>>
《Python面向对象……》之目录
查看>>
集群入门简析及LB下LVS详解
查看>>
Linux与GPT
查看>>
管理或技术
查看>>
分配到弱属性;对象将在赋值之后释放
查看>>
java作用域public ,private ,protected 及不写时的区别
查看>>
until循环语句
查看>>
Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现
查看>>
提高用户体验方式:饥饿营销
查看>>
Java8中的LocalDateTime工具类
查看>>
Exchange 2013 PowerShell创建自定义对象
查看>>
RAID-10 阵列的创建(软)
查看>>
javaScript的调试(四)
查看>>
nginx不使用正则表达式匹配
查看>>
利用putty进行vnc + ssh tunneling登录
查看>>
js重定向---实现页面跳转的几种方式
查看>>
hadoop1.x作业提交过程分析(源码分析第二篇)
查看>>
默认安装vsftpd后
查看>>
《Redis设计与实现》读书笔记
查看>>