Mybatis應(yīng)用mysql存儲(chǔ)過程查詢數(shù)據(jù)實(shí)例
1.創(chuàng)建mysql存儲(chǔ)過程,這是個(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ǔ)過程是否創(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ǔ)過程查詢數(shù)據(jù)實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Mybatis調(diào)用PostgreSQL存儲(chǔ)過程實(shí)現(xiàn)數(shù)組入?yún)鬟f
- Mybatis調(diào)用MySQL存儲(chǔ)過程的簡(jiǎn)單實(shí)現(xiàn)
- 關(guān)于Mybatis 中使用Mysql存儲(chǔ)過程的方法
- mybatis調(diào)用mysql存儲(chǔ)過程(返回參數(shù),單結(jié)果集,多結(jié)果集)
- 前端傳參數(shù)進(jìn)行Mybatis調(diào)用mysql存儲(chǔ)過程執(zhí)行返回值詳解
- mybatis調(diào)用mysql存儲(chǔ)過程并獲取返回值方式
- Mybatis調(diào)用SQL?Server存儲(chǔ)過程的實(shí)現(xiàn)示例
相關(guān)文章
springboot通用分支處理超級(jí)管理員權(quán)限邏輯
這篇文章主要為大家介紹了springboot通用分支處理超級(jí)管理員的權(quán)限邏輯,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07Java http請(qǐng)求封裝工具類代碼實(shí)例
這篇文章主要介紹了Java http請(qǐng)求封裝工具類代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04Spring實(shí)戰(zhàn)之獲取其他Bean的屬性值操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之獲取其他Bean的屬性值操作,結(jié)合實(shí)例形式分析了Spring操作Bean屬性值的相關(guān)配置與實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-12-12Java動(dòng)態(tài)編譯執(zhí)行代碼示例
這篇文章主要介紹了Java動(dòng)態(tài)編譯執(zhí)行代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12java中JsonObject與JsonArray轉(zhuǎn)換方法實(shí)例
在項(xiàng)目日常開發(fā)中常常會(huì)遇到JSONArray和JSONObject的轉(zhuǎn)換,很多公司剛?cè)肼毜男∶刃聲?huì)卡在這里,下面這篇文章主要給大家介紹了關(guān)于java中JsonObject與JsonArray轉(zhuǎn)換方法的相關(guān)資料,需要的朋友可以參考下2023-04-04java 實(shí)現(xiàn)輸出隨機(jī)圖片實(shí)例代碼
這篇文章主要介紹了java 實(shí)現(xiàn)輸出隨機(jī)圖片實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-06-06java使用單向鏈表解決數(shù)據(jù)存儲(chǔ)自定義排序問題
本文主要介紹了java使用單向鏈表解決數(shù)據(jù)存儲(chǔ)自定義排序問題,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03idea中maven本地倉(cāng)庫(kù)jar包打包失敗和無(wú)法引用的問題解決
本文主要介紹了idea中maven本地倉(cāng)庫(kù)jar包打包失敗和無(wú)法引用的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06