MyBatis学习教程(六)-调用存储过程
一、提出需求
查询得到男性或女性的数量,如果传入的是0就女性否则是男性
二、准备数据库表和存储过程
createtablep_user(
idintprimarykeyauto_increment,
namevarchar(),
sexchar()
);
insertintop_user(name,sex)values('A',"男");
insertintop_user(name,sex)values('B',"女");
insertintop_user(name,sex)values('C',"男");
--创建存储过程(查询得到男性或女性的数量,如果传入的是就女性否则是男性)
DELIMITER$
CREATEPROCEDUREmybatis.ges_user_count(INsex_idINT,OUTuser_countINT)
BEGIN
IFsex_id=THEN
SELECTCOUNT(*)FROMmybatis.p_userWHEREp_user.sex='女'INTOuser_count;
ELSE
SELECTCOUNT(*)FROMmybatis.p_userWHEREp_user.sex='男'INTOuser_count;
ENDIF;
END
$
--调用存储过程
DELIMITER;
SET@user_count=;
CALLmybatis.ges_user_count(,@user_count);
SELECT@user_count;
三、编辑userMapper.xml
编辑userMapper.xml文件,添加如下的配置项
<!--
查询得到男性或女性的数量,如果传入的是就女性否则是男性
-->
<selectid="getUserCount"parameterMap="getUserCountMap"statementType="CALLABLE">
CALLmybatis.ges_user_count(?,?)
</select>
<!--
parameterMap.put("sexid",);
parameterMap.put("usercount",-);
-->
<parameterMaptype="java.util.Map"id="getUserCountMap">
<parameterproperty="sexid"mode="IN"jdbcType="INTEGER"/>
<parameterproperty="usercount"mode="OUT"jdbcType="INTEGER"/>
</parameterMap>
四、编写单元测试代码
packageme.gacl.test;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
importme.gacl.custom.model.ConditionUser;
importme.gacl.domain.User;
importme.gacl.util.MyBatisUtil;
importorg.apache.ibatis.session.SqlSession;
importorg.junit.Test;
/**
*@authorgacl
*测试调用存储过程
*/
publicclassTest{
@Test
publicvoidtestGetUserCount(){
SqlSessionsqlSession=MyBatisUtil.getSqlSession();
/**
*映射sql的标识字符串,
*me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
*getUserCount是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
*/
Stringstatement="me.gacl.mapping.userMapper.getUserCount";//映射sql的标识字符串
Map<String,Integer>parameterMap=newHashMap<String,Integer>();
parameterMap.put("sexid",);
parameterMap.put("usercount",-);
sqlSession.selectOne(statement,parameterMap);
Integerresult=parameterMap.get("usercount");
System.out.println(result);
sqlSession.close();
}
}
以上所述是小编给大家介绍的MyBatis学习教程(六)-调用存储过程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!