MyBatis學習教程(六)-調(diào)用存儲過程
一、提出需求
查詢得到男性或女性的數(shù)量, 如果傳入的是0就女性否則是男性
二、準備數(shù)據(jù)庫表和存儲過程
create table p_user(
id int primary key auto_increment,
name varchar(),
sex char()
);
insert into p_user(name,sex) values('A',"男");
insert into p_user(name,sex) values('B',"女");
insert into p_user(name,sex) values('C',"男");
-- 創(chuàng)建存儲過程(查詢得到男性或女性的數(shù)量, 如果傳入的是就女性否則是男性)
DELIMITER $
CREATE PROCEDURE mybatis.ges_user_count(IN sex_id INT, OUT user_count INT)
BEGIN
IF sex_id= 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
$
-- 調(diào)用存儲過程
DELIMITER ;
SET @user_count = ;
CALL mybatis.ges_user_count(, @user_count);
SELECT @user_count;
三、編輯userMapper.xml
編輯userMapper.xml文件,添加如下的配置項
<!--
查詢得到男性或女性的數(shù)量, 如果傳入的是就女性否則是男性
-->
<select id="getUserCount" parameterMap="getUserCountMap" statementType="CALLABLE">
CALL mybatis.ges_user_count(?,?)
</select>
<!--
parameterMap.put("sexid", );
parameterMap.put("usercount", -);
-->
<parameterMap type="java.util.Map" id="getUserCountMap">
<parameter property="sexid" mode="IN" jdbcType="INTEGER"/>
<parameter property="usercount" mode="OUT" jdbcType="INTEGER"/>
</parameterMap>
四、編寫單元測試代碼
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
* 測試調(diào)用存儲過程
*/
public class Test {
@Test
public void testGetUserCount(){
SqlSession sqlSession = MyBatisUtil.getSqlSession();
/**
* 映射sql的標識字符串,
* me.gacl.mapping.userMapper是userMapper.xml文件中mapper標簽的namespace屬性的值,
* getUserCount是select標簽的id屬性值,通過select標簽的id屬性值就可以找到要執(zhí)行的SQL
*/
String statement = "me.gacl.mapping.userMapper.getUserCount";//映射sql的標識字符串
Map<String, Integer> parameterMap = new HashMap<String, Integer>();
parameterMap.put("sexid", );
parameterMap.put("usercount", -);
sqlSession.selectOne(statement, parameterMap);
Integer result = parameterMap.get("usercount");
System.out.println(result);
sqlSession.close();
}
}
以上所述是小編給大家介紹的MyBatis學習教程(六)-調(diào)用存儲過程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
關(guān)于@Scheduled不執(zhí)行的原因分析
這篇文章主要介紹了關(guān)于@Scheduled不執(zhí)行的原因分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12
Spring Boot 2.x 把 Guava 干掉了選擇本地緩存之王 Caffeine(推薦)
這篇文章主要介紹了Spring Boot 2.x 把 Guava 干掉了選擇本地緩存之王 Caffeine,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
Java8內(nèi)存模型PermGen Metaspace實例解析
這篇文章主要介紹了Java8內(nèi)存模型PermGen Metaspace實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-03-03
Spring使用Jackson實現(xiàn)轉(zhuǎn)換XML與Java對象
這篇文章主要為大家詳細介紹了Spring如何使用Jackson實現(xiàn)轉(zhuǎn)換XML與Java對象,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-02-02

