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学习教程(六)-调用存储过程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!