mybatis 调用存储过程
2015-06-30 14:24
155 查看
要求:查询得到男性或女性的数量, 如果传入的是0就女性否则是男性
userMapper.xml
测试类:
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 THEN SELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='女' INTO user_count; ELSE SELECT 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方法 }
userMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-- 调用存储过程 --> <mapper namespace="com.lx.test7.userMapper"> <select id="getUserCount" parameterMap="getUserMap" statementType="CALLABLE"> CALL hibernate1.ges_user_count(?,?); </select> <parameterMap type="java.util.Map" id="getUserMap"> <parameter property="sexid" mode="IN" jdbcType="INTEGER"/> <parameter property="usercount" mode="OUT" jdbcType="INTEGER"/> </parameterMap> </mapper>
测试类:
package com.lx.test7; import java.util.HashMap; import java.util.Map; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.junit.Test; import com.lx.bean.Classes; import com.lx.utils.FactoryUtil; public class Test7 { @Test public void test1() { SqlSessionFactory factory = FactoryUtil.getFactory(); SqlSession session = factory.openSession(); String statement = "com.lx.test7.userMapper.getUserCount"; Map<String,Integer> parameter = new HashMap<String, Integer>(); parameter.put("sexid", 0); parameter.put("usercount", -1); session.selectOne(statement, parameter); int count = parameter.get("usercount"); System.out.println(count); session.close(); } }
相关文章推荐
- loadrunner 三种post函数区别
- 安全性测试-登陆
- 正则表达式基础
- ios 关闭自动修正输入内容
- org.tinygroup.jsqlparser-SQL解析器
- fbx 模型转换 export
- 如何将基于对话框的MFC工程改成基于BCG的
- org.tinygroup.xmlparser-XML解析器
- Debian 8 的中文输入法
- log file switch (checkpoint incomplete)的问题定位
- Netty游戏服务器之五Unity3d登陆消息
- Oracle使用由字符串索引的二维数组
- Python ---IDEL清屏
- Netty游戏服务器之五Unity3d登陆消息
- div添加滚动条常见属性
- org.tinygroup.application-应用启动框架
- org.tinygroup.htmlparser-Html解析器
- raid技术-研究感受
- 代码签名探析
- 编程技巧20法 (下)