mybatis調(diào)用存儲(chǔ)過程,帶in、out參數(shù)問題
1、需求
統(tǒng)計(jì)男性、女性的數(shù)量,如果傳入的是0,就統(tǒng)計(jì)女性的數(shù)量,否則統(tǒng)計(jì)男性的數(shù)量。
2、準(zhǔn)備數(shù)據(jù)庫表、存儲(chǔ)過程
2.1、創(chuàng)建表,導(dǎo)入數(shù)據(jù)
create table p_user( id int primary key auto_increment, name varchar(10), sex char(2) ) engine=innodb default charset=utf8 ; insert into p_user(name,sex) values('A',"男"); insert into p_user(name,sex) values('B',"女"); insert into p_user(name,sex) values('C',"男");
2.2、創(chuàng)建存儲(chǔ)過程
delimiter $ drop procedure if exists get_user_count; create procedure get_user_count(in sex_id int, out user_count int) begin if sex_id=0 then select count(*) from p_user where p_user.sex='女' into user_count; else select count(*) from p_user where p_user.sex='男' into user_count; end if; end $ delimiter ;
2.3、測(cè)試存儲(chǔ)過程
call get_user_count(1, @user_count); ## 0:統(tǒng)計(jì)女性的,1:統(tǒng)計(jì)男性的 select @user_count;
結(jié)果:
3、 Mapper 接口
package com.test; public interface UserMapper{ public Integer getCount(Map map); }
4、UserMapper.xml
統(tǒng)計(jì)男性、女性的數(shù)量, 如果傳入的是0,就統(tǒng)計(jì)女性的數(shù)量,否則統(tǒng)計(jì)男性。
<mapper namespace="com.test.UserMapper"> <!-- 統(tǒng)計(jì)男性、女性的數(shù)量, 如果傳入的是0,就統(tǒng)計(jì)女性的數(shù)量,否則統(tǒng)計(jì)男性 call get_user_count(1, @user_count); --> <select id="getCount" statementType="CALLABLE" parameterMap="getCountMap"> call get_user_count(?,?) </select> <parameterMap type="java.util.Map" id="getCountMap"> <parameter property="sex_id" mode="IN" jdbcType="INTEGER"/> <parameter property="user_count" mode="OUT" jdbcType="INTEGER"/> </parameterMap> </mapper>
5、 測(cè)試調(diào)用
public class UserTest { public static void main(String[] args) throws IOException { Reader reader = Resources.getResourceAsReader("conf.xml"); SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sessionFactory.openSession(); Map<String, Integer> paramMap = new HashMap<>(); paramMap.put("sex_id", 0); session.selectOne(statement, paramMap); Integer userCount = paramMap.get("user_count"); System.out.println(userCount); } }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java中Hashtable和HashMap的區(qū)別分析
java中Hashtable和HashMap的區(qū)別分析,需要的朋友可以參考一下2013-04-04springboot2.2 集成 activity6實(shí)現(xiàn)請(qǐng)假流程(示例詳解)
這篇文章主要介紹了springboot2.2 集成 activity6實(shí)現(xiàn)請(qǐng)假完整流程示例詳解,本文通過示例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07spring?boot中spring框架的版本升級(jí)圖文教程
Spring Boot是一款基于Spring框架的快速開發(fā)框架,它提供了一系列的開箱即用的功能和組件,這篇文章主要給大家介紹了關(guān)于spring?boot中spring框架的版本升級(jí)的相關(guān)資料,需要的朋友可以參考下2023-10-10JAVA生成八位不重復(fù)隨機(jī)數(shù)最快的方法總結(jié)(省時(shí)間省空間)
隨機(jī)數(shù)在實(shí)際中使用很廣泛,比如要隨即生成一個(gè)固定長(zhǎng)度的字符串、數(shù)字,這篇文章主要給大家介紹了關(guān)于JAVA生成八位不重復(fù)隨機(jī)數(shù)最快的方法,文中介紹的方法省時(shí)間省空間,需要的朋友可以參考下2024-03-03Java工作環(huán)境的配置與Eclipse的安裝過程
這篇文章主要介紹了Java工作環(huán)境的配置與Eclipse的安裝過程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02String與Blob互轉(zhuǎn)和file文件與Blob互轉(zhuǎn)方式
這篇文章主要介紹了String與Blob互轉(zhuǎn)和file文件與Blob互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05