mybatis調(diào)用存儲(chǔ)過(guò)程的實(shí)例代碼
一、提出需求
查詢(xún)得到男性或女性的數(shù)量, 如果傳入的是0就女性否則是男性
二、準(zhǔn)備數(shù)據(jù)庫(kù)表和存儲(chǔ)過(guò)程
create table p_user(
id int primary key auto_increment,
name varchar(10),
sex char(2)
);
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)建存儲(chǔ)過(guò)程(查詢(xún)得到男性或女性的數(shù)量, 如果傳入的是0就女性否則是男性)
DELIMITER $
CREATE PROCEDURE mybatis.ges_user_count(IN sex_id INT, OUT user_count INT)
BEGIN
IF sex_id=0 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)用存儲(chǔ)過(guò)程
DELIMITER ;
SET @user_count = 0;
CALL mybatis.ges_user_count(1, @user_count);
SELECT @user_count;
三、編輯userMapper.xml
編輯userMapper.xml文件,添加如下的配置項(xiàng)
<!--
查詢(xún)得到男性或女性的數(shù)量, 如果傳入的是0就女性否則是男性
-->
<select id="getUserCount" parameterMap="getUserCountMap" statementType="CALLABLE">
CALL mybatis.ges_user_count(?,?)
</select>
<!--
parameterMap.put("sexid", 0);
parameterMap.put("usercount", -1);
-->
<parameterMap type="java.util.Map" id="getUserCountMap">
<parameter property="sexid" mode="IN" jdbcType="INTEGER"/>
<parameter property="usercount" mode="OUT" jdbcType="INTEGER"/>
</parameterMap>
四、編寫(xiě)單元測(cè)試代碼
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
* 測(cè)試調(diào)用存儲(chǔ)過(guò)程
*/
public class Test6 {
@Test
public void testGetUserCount(){
SqlSession sqlSession = MyBatisUtil.getSqlSession();
/**
* 映射sql的標(biāo)識(shí)字符串,
* me.gacl.mapping.userMapper是userMapper.xml文件中mapper標(biāo)簽的namespace屬性的值,
* getUserCount是select標(biāo)簽的id屬性值,通過(guò)select標(biāo)簽的id屬性值就可以找到要執(zhí)行的SQL
*/
String statement = "me.gacl.mapping.userMapper.getUserCount";//映射sql的標(biāo)識(shí)字符串
Map<String, Integer> parameterMap = new HashMap<String, Integer>();
parameterMap.put("sexid", 1);
parameterMap.put("usercount", -1);
sqlSession.selectOne(statement, parameterMap);
Integer result = parameterMap.get("usercount");
System.out.println(result);
sqlSession.close();
}
}
總結(jié)
以上所述是小編給大家介紹的mybatis調(diào)用存儲(chǔ)過(guò)程的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- mybatis調(diào)用mysql存儲(chǔ)過(guò)程(返回參數(shù),單結(jié)果集,多結(jié)果集)
- 關(guān)于mybatis調(diào)用存儲(chǔ)過(guò)程獲取返回值問(wèn)題
- MyBatis如何調(diào)用存儲(chǔ)過(guò)程與存儲(chǔ)函數(shù)
- mybatis調(diào)用sqlserver存儲(chǔ)過(guò)程返回結(jié)果集的方法
- Mybatis調(diào)用Oracle存儲(chǔ)過(guò)程的方法圖文詳解
- Mybatis調(diào)用MySQL存儲(chǔ)過(guò)程的簡(jiǎn)單實(shí)現(xiàn)
- Mybatis傳list參數(shù)調(diào)用oracle存儲(chǔ)過(guò)程的解決方法
- Mybatis調(diào)用存儲(chǔ)過(guò)程的案例
相關(guān)文章
restTemplate實(shí)現(xiàn)跨服務(wù)API調(diào)用方式
這篇文章主要介紹了restTemplate實(shí)現(xiàn)跨服務(wù)API調(diào)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2023-07-07
在SpringBoot中集成H2數(shù)據(jù)庫(kù)的完整指南
Spring Boot是一個(gè)簡(jiǎn)化企業(yè)級(jí)Java應(yīng)用程序開(kāi)發(fā)的強(qiáng)大框架,H2數(shù)據(jù)庫(kù)是一個(gè)輕量級(jí)的、開(kāi)源的SQL數(shù)據(jù)庫(kù),非常適合用于開(kāi)發(fā)和測(cè)試,本文將指導(dǎo)您如何在Spring Boot應(yīng)用程序中集成H2數(shù)據(jù)庫(kù),并探索一些高級(jí)配置選項(xiàng),需要的朋友可以參考下2024-10-10
Spring Boot高效數(shù)據(jù)聚合之道深入講解
這篇文章主要給大家介紹了關(guān)于Spring Boot高效數(shù)據(jù)聚合之道的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
Java中ArrayList和LinkedList的區(qū)別
ArrayList和LinkedList在這個(gè)方法上存在一定的性能差異,本文就介紹了Java中ArrayList和LinkedList的區(qū)別,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
Java中使用數(shù)組實(shí)現(xiàn)棧數(shù)據(jù)結(jié)構(gòu)實(shí)例
這篇文章主要介紹了Java中使用數(shù)組實(shí)現(xiàn)棧數(shù)據(jù)結(jié)構(gòu)實(shí)例,本文先是講解了實(shí)現(xiàn)棧至少應(yīng)該包括以下幾個(gè)方法等知識(shí),然后給出代碼實(shí)例,需要的朋友可以參考下2015-01-01
關(guān)于解決雪花算法生成的ID傳輸前端后精度丟失問(wèn)題
這篇文章主要介紹了關(guān)于解決雪花算法生成的ID傳輸前端后精度丟失問(wèn)題,雪花算法生成的ID傳輸?shù)角岸藭r(shí),會(huì)出現(xiàn)后三位精度丟失,本文提供了解決思路,需要的朋友可以參考下2023-03-03
Java中List介紹及常見(jiàn)方法和五種遍歷方式詳解
這篇文章主要給大家介紹了關(guān)于Java中List介紹及常見(jiàn)方法和五種遍歷方式的相關(guān)資料,Java的List接口是集合框架的一部分,定義了一個(gè)有序的集合,允許存儲(chǔ)重復(fù)的元素,并且可以通過(guò)索引訪問(wèn)這些元素,需要的朋友可以參考下2024-12-12
java中復(fù)雜查詢(xún)sql語(yǔ)句該怎么寫(xiě)
我們知道在java連接數(shù)據(jù)庫(kù)之后,需要數(shù)據(jù)庫(kù)的sql語(yǔ)句,下面這篇文章主要給大家介紹了關(guān)于java中復(fù)雜查詢(xún)sql語(yǔ)句該怎么寫(xiě)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11

