mybatis调用存储过程的实例代码
一、提出需求
查询得到男性或女性的数量,如果传入的是0就女性否则是男性
二、准备数据库表和存储过程
createtablep_user( idintprimarykeyauto_increment, namevarchar(10), sexchar(2) ); insertintop_user(name,sex)values('A',"男"); insertintop_user(name,sex)values('B',"女"); insertintop_user(name,sex)values('C',"男"); --创建存储过程(查询得到男性或女性的数量,如果传入的是0就女性否则是男性) DELIMITER$ CREATEPROCEDUREmybatis.ges_user_count(INsex_idINT,OUTuser_countINT) BEGIN IFsex_id=0THEN SELECTCOUNT(*)FROMmybatis.p_userWHEREp_user.sex='女'INTOuser_count; ELSE SELECTCOUNT(*)FROMmybatis.p_userWHEREp_user.sex='男'INTOuser_count; ENDIF; END $ --调用存储过程 DELIMITER; SET@user_count=0; CALLmybatis.ges_user_count(1,@user_count); SELECT@user_count;
三、编辑userMapper.xml
编辑userMapper.xml文件,添加如下的配置项
CALLmybatis.ges_user_count(?,?)
四、编写单元测试代码
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 *测试调用存储过程 */ publicclassTest6{ @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的标识字符串 MapparameterMap=newHashMap (); parameterMap.put("sexid",1); parameterMap.put("usercount",-1); sqlSession.selectOne(statement,parameterMap); Integerresult=parameterMap.get("usercount"); System.out.println(result); sqlSession.close(); } }
总结
以上所述是小编给大家介绍的mybatis调用存储过程的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!