Mybatis應(yīng)用mysql存儲(chǔ)過(guò)程查詢數(shù)據(jù)實(shí)例
1.創(chuàng)建mysql存儲(chǔ)過(guò)程,這是個(gè)復(fù)雜查詢加上了判斷,比較復(fù)雜
CREATE PROCEDURE searchAllList (
IN tradingAreaId VARCHAR (50),
IN categoryName VARCHAR (100),
IN intelligenceSort TINYINT UNSIGNED,
IN priceBegin DOUBLE,
IN priceEnd DOUBLE,
IN commodityName VARCHAR (200),
IN flag TINYINT UNSIGNED
)
BEGIN
IF flag = 0 THEN
SELECT
B.user_business_id businessId,
B.shop_name,
B.total_score,
B.shop_logo,
B.average_consume,
D.category_name,
B.shop_address
FROM
user_business_commodity A
LEFT JOIN user_business B ON B.user_business_id = A.user_business_id
LEFT JOIN user_business_category C ON C.business_id = B.user_business_id
LEFT JOIN service_category D ON D.category_id = C.category_one_id
WHERE
1 = 1
AND
IF (
categoryName IS NOT NULL
AND LENGTH(TRIM(categoryName)) > 0,
D.category_name = categoryName,
1 = 1
)
AND
IF (
priceBegin != 0,
B.average_consume >= priceBegin,
1 = 1
)
AND
IF (
priceEnd != 0,
B.average_consume <= priceEnd,
1 = 1
)
AND
IF (
commodityName IS NOT NULL
AND LENGTH(TRIM(commodityName)) > 0,
A. NAME LIKE concat('%', commodityName, '%'),
1 = 1
)
AND B.is_delete = 0
AND B.shop_setup_state = 1
AND A.is_delete = 0
AND C.is_delete = 0
AND D.is_delete = 0
GROUP BY
A.user_business_id
ORDER BY
CASE intelligenceSort
WHEN 1 THEN
'B.total_order DESC'
WHEN 2 THEN
'B.total_score DESC'
WHEN 3 THEN
'B.create_time DESC'
ELSE
'B.create_time ASC'
END;
ELSE
SELECT
B.user_business_id businessId,
B.shop_name,
B.total_score,
B.shop_logo,
B.average_consume,
D.category_name,
B.shop_address
FROM
user_business_commodity A
LEFT JOIN user_business B ON B.user_business_id = A.user_business_id
LEFT JOIN user_business_category C ON C.business_id = B.user_business_id
LEFT JOIN service_category D ON D.category_id = C.category_two_id
WHERE
1 = 1
AND
IF (
categoryName IS NOT NULL
AND LENGTH(TRIM(categoryName)) > 0,
D.category_name = categoryName,
1 = 1
)
AND
IF (
priceBegin != 0,
B.average_consume >= priceBegin,
1 = 1
)
AND
IF (
priceEnd != 0,
B.average_consume <= priceEnd,
1 = 1
)
AND
IF (
commodityName IS NOT NULL
AND LENGTH(TRIM(commodityName)) > 0,
A. NAME LIKE concat('%', commodityName, '%'),
1 = 1
)
AND B.is_delete = 0
AND B.shop_setup_state = 1
AND A.is_delete = 0
AND C.is_delete = 0
AND D.is_delete = 0
GROUP BY
A.user_business_id
ORDER BY
CASE intelligenceSort
WHEN 1 THEN
'B.total_order DESC'
WHEN 2 THEN
'B.total_score DESC'
WHEN 3 THEN
'B.create_time DESC'
ELSE
'B.create_time ASC'
END;
END IF;
END;
2.查看存儲(chǔ)過(guò)程是否創(chuàng)建成功:
show procedure status;
3.sqlMapper文件:
<select id="searchAllList1" parameterMap="searchAllListMap" statementType="CALLABLE" resultType="com.dongjia168.platform.vo.erp.crm.BusinessShopResp">
CALL searchAllList(#{tradingAreaId},#{categoryName},#{intelligenceSort},#{priceBegin},#{priceEnd},#{commodityName},#{flag});
</select>
<parameterMap id="searchAllListMap" type="com.dongjia168.platform.vo.erp.crm.BusinessShopReq">
<parameter property="tradingAreaId" jdbcType="VARCHAR" mode="IN"/>
<parameter property="categoryName" jdbcType="VARCHAR" mode="IN"/>
<parameter property="intelligenceSort" jdbcType="INTEGER" mode="IN"/>
<parameter property="priceBegin" jdbcType="DOUBLE" mode="IN"/>
<parameter property="priceEnd" jdbcType="DOUBLE" mode="IN"/>
<parameter property="commodityName" jdbcType="VARCHAR" mode="IN"/>
<parameter property="flag" jdbcType="INTEGER" mode="IN"/>
</parameterMap>
其他和直接調(diào)用sql語(yǔ)句一樣了
以上這篇Mybatis應(yīng)用mysql存儲(chǔ)過(guò)程查詢數(shù)據(jù)實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Mybatis調(diào)用PostgreSQL存儲(chǔ)過(guò)程實(shí)現(xiàn)數(shù)組入?yún)鬟f
- Mybatis調(diào)用MySQL存儲(chǔ)過(guò)程的簡(jiǎn)單實(shí)現(xiàn)
- 關(guān)于Mybatis 中使用Mysql存儲(chǔ)過(guò)程的方法
- mybatis調(diào)用mysql存儲(chǔ)過(guò)程(返回參數(shù),單結(jié)果集,多結(jié)果集)
- 前端傳參數(shù)進(jìn)行Mybatis調(diào)用mysql存儲(chǔ)過(guò)程執(zhí)行返回值詳解
- mybatis調(diào)用mysql存儲(chǔ)過(guò)程并獲取返回值方式
- Mybatis調(diào)用SQL?Server存儲(chǔ)過(guò)程的實(shí)現(xiàn)示例
相關(guān)文章
IDEA啟動(dòng)Tomcat時(shí)控制臺(tái)出現(xiàn)亂碼問(wèn)題及解決
這篇文章主要介紹了IDEA啟動(dòng)Tomcat時(shí)控制臺(tái)出現(xiàn)亂碼問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
單點(diǎn)登錄的概念及SpringBoot實(shí)現(xiàn)單點(diǎn)登錄的操作方法
在本文中,我們將使用Spring Boot構(gòu)建一個(gè)基本的單點(diǎn)登錄系統(tǒng),我們將介紹如何使用Spring Security和JSON Web Tokens(JWTs)來(lái)實(shí)現(xiàn)單點(diǎn)登錄功能,本文假設(shè)您已經(jīng)熟悉Spring Boot和Spring Security,感興趣的朋友一起看看吧2024-10-10
Java調(diào)用WebService接口作測(cè)試
這篇文章主要介紹了Java調(diào)用WebService接口作測(cè)試,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
如何使用Resttemplate和Ribbon調(diào)用Eureka實(shí)現(xiàn)負(fù)載均衡
這篇文章主要介紹了如何使用Resttemplate和Ribbon調(diào)用Eureka實(shí)現(xiàn)負(fù)載均衡,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
IDEA配置Tomcat后,控制臺(tái)tomcat?catalina?log出現(xiàn)亂碼問(wèn)題
本文介紹了如何通過(guò)設(shè)置Tomcat和IDEA的編碼格式來(lái)解決編碼問(wèn)題,首先嘗試修改Tomcat的logging.properties文件中的編碼設(shè)置,如果未解決問(wèn)題,則調(diào)整IDEA的編碼設(shè)置,通過(guò)修改vmoptions文件來(lái)全局設(shè)置IDEA的編碼格式,作者分享了個(gè)人成功解決問(wèn)題的方法和步驟,供其他開發(fā)者參考2024-09-09
淺析Java中對(duì)象的創(chuàng)建與對(duì)象的數(shù)據(jù)類型轉(zhuǎn)換
這篇文章主要介紹了Java中對(duì)象的創(chuàng)建與對(duì)象的數(shù)據(jù)類型轉(zhuǎn)換,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-01-01
淺談Java實(shí)現(xiàn)回溯算法之八皇后問(wèn)題
八皇后問(wèn)題是一個(gè)古老而又著名的問(wèn)題,是學(xué)習(xí)回溯算法的一個(gè)經(jīng)典案例。今天我們就一起來(lái)探究一下吧2021-06-06
Mybatis控制臺(tái)打印SQL執(zhí)行信息的方法詳解
SQL性能監(jiān)控是一個(gè)程序必要的功能,通常我們可以使用數(shù)據(jù)庫(kù)自帶的客戶端工具進(jìn)行SQL性能分析,本章節(jié)只實(shí)現(xiàn)Mybatis執(zhí)行時(shí)對(duì)執(zhí)行SQL進(jìn)行攔截,控制臺(tái)打印執(zhí)行SQL包括參數(shù)、執(zhí)行方法以及執(zhí)行時(shí)間,需要的朋友可以參考下2024-11-11

