MyBatis學(xué)習(xí)教程(六)-調(diào)用存儲過程
一、提出需求
查詢得到男性或女性的數(shù)量, 如果傳入的是0就女性否則是男性
二、準(zhǔn)備數(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文件,添加如下的配置項(xiàng)
<!-- 查詢得到男性或女性的數(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的標(biāo)識字符串, * me.gacl.mapping.userMapper是userMapper.xml文件中mapper標(biāo)簽的namespace屬性的值, * getUserCount是select標(biāo)簽的id屬性值,通過select標(biāo)簽的id屬性值就可以找到要執(zhí)行的SQL */ String statement = "me.gacl.mapping.userMapper.getUserCount";//映射sql的標(biāo)識字符串 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學(xué)習(xí)教程(六)-調(diào)用存儲過程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- Mybatis調(diào)用MySQL存儲過程的簡單實(shí)現(xiàn)
- Mybatis傳list參數(shù)調(diào)用oracle存儲過程的解決方法
- Mybatis調(diào)用PostgreSQL存儲過程實(shí)現(xiàn)數(shù)組入?yún)鬟f
- MyBatis存儲過程、MyBatis分頁、MyBatis一對多增刪改查操作
- SpringMVC與Mybatis集合實(shí)現(xiàn)調(diào)用存儲過程、事務(wù)控制實(shí)例
- Mybatis調(diào)用視圖和存儲過程的方法
- MyBatis創(chuàng)建存儲過程的實(shí)例代碼_動力節(jié)點(diǎn)Java學(xué)院整理
相關(guān)文章
關(guān)于@Scheduled不執(zhí)行的原因分析
這篇文章主要介紹了關(guān)于@Scheduled不執(zhí)行的原因分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12Java中l(wèi)ambda表達(dá)式的基本運(yùn)用
大家好,本篇文章主要講的是Java中l(wèi)ambda表達(dá)式的基本運(yùn)用,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-01-01Spring Boot 2.x 把 Guava 干掉了選擇本地緩存之王 Caffeine(推薦)
這篇文章主要介紹了Spring Boot 2.x 把 Guava 干掉了選擇本地緩存之王 Caffeine,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01Java?離線中文語音文字識別功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了Java?離線中文語音文字識別,本次使用springboot?+maven實(shí)現(xiàn),官方demo為springboot+gradle,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07SWT(JFace) FTP客戶端實(shí)現(xiàn)
SWT(JFace)小制作:FTP客戶端實(shí)現(xiàn)2009-06-06Java8內(nèi)存模型PermGen Metaspace實(shí)例解析
這篇文章主要介紹了Java8內(nèi)存模型PermGen Metaspace實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03Java后端學(xué)習(xí)精華之TCP通信傳輸協(xié)議詳解
TCP/IP是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,它會保證數(shù)據(jù)不丟包、不亂序。TCP全名是Transmission Control Protocol,它是位于網(wǎng)絡(luò)OSI模型中的第四層2021-09-09Spring使用Jackson實(shí)現(xiàn)轉(zhuǎn)換XML與Java對象
這篇文章主要為大家詳細(xì)介紹了Spring如何使用Jackson實(shí)現(xiàn)轉(zhuǎn)換XML與Java對象,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02