mybatis-plus:xml拼接sql方式
mybatis-plus:xml拼接sql
foreach操作map
<if test = "vo.map!= null and vo.map.size() > 0">
<foreach item="item" index="key" collection="vo.map">
<if test = "key != null and key != 'assetType'">
// jsonParam為json類型字段
and JSON_EXTRACT(jsonParam, '$.${key}') = #{item}
</if>
<if test = "key != null and key == 'assetType'">
and ${key} = #{item}
</if>
</foreach>
</if>foreach操作List
<if test="assetCodes != null and list.size > 0">
and field in
<foreach collection="list" item="e" index="index" open="(" close=")" separator=",">
#{e}
</foreach>
</if>foreach操作String
<if test="vo.departmentCodeList != null and vo.departmentCodeList != ''">
AND r.department_code in
<foreach item="departmentCode" collection="vo.departmentCodeList.split(',')" open="(" separator="," close=")">
#{departmentCode}
</foreach>
</if>mybatis-plus動(dòng)態(tài)拼接sql語句
解釋
${ew.customSqlSegment} 是 MyBatis-Plus 中用于在 SQL 語句中插入自定義 SQL 片段的占位符。
ew 是指 Wrapper 對(duì)象(通常是 QueryWrapper 或 UpdateWrapper),而 customSqlSegment 是這個(gè)對(duì)象中的自定義 SQL 片段。
用途
這個(gè)占位符通常用于動(dòng)態(tài)拼接 SQL 語句
允許在特定的 SQL 語句部分插入自定義的條件、過濾器或者其他 SQL 片段。
例子
QueryWrapper<MsCustomer> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", "active");
// 動(dòng)態(tài)添加一個(gè)自定義的 SQL 片段
queryWrapper.apply("custom_column > {0}", someValue);
List<MsCustomer> customers = msCustomerMapper.selectList(queryWrapper);在 Mapper XML 文件中,可以像這樣使用 ${ew.customSqlSegment}:
<select id="selectCustomers" resultType="MsCustomer">
SELECT * FROM ms_customer ${ew.customSqlSegment}
</select>作用
customSqlSegment 允許你通過編程方式動(dòng)態(tài)生成 SQL 語句中的某些部分,從而實(shí)現(xiàn)更靈活的查詢和操作。
例如:
如果在代碼中調(diào)用了 apply() 方法或其他添加條件的方法,這些條件會(huì)被自動(dòng)拼接到 ${ew.customSqlSegment} 處,從而生成最終的 SQL 語句。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java鏈表的天然遞歸結(jié)構(gòu)性質(zhì)圖文與實(shí)例分析
這篇文章主要介紹了Java鏈表的天然遞歸結(jié)構(gòu)性質(zhì),結(jié)合圖文與實(shí)例形式分析了java鏈表中遞歸操作的原理、實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2020-03-03
Spring?boot?CommandLineRunner啟動(dòng)任務(wù)傳參實(shí)例詳解
在使用SpringBoot構(gòu)建項(xiàng)目時(shí),我們通常有一些預(yù)先數(shù)據(jù)的加載,下面這篇文章主要給大家介紹了關(guān)于Spring?boot?CommandLineRunner啟動(dòng)任務(wù)傳參的相關(guān)資料,需要的朋友可以參考下2022-06-06
springboot集成Feign的實(shí)現(xiàn)示例
Feign是聲明式HTTP客戶端,用于簡化微服務(wù)之間的REST調(diào)用,本文就來介紹一下springboot集成Feign的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
Spring如何基于注解顯式實(shí)現(xiàn)自動(dòng)裝配
這篇文章主要介紹了Spring如何基于注解顯式實(shí)現(xiàn)自動(dòng)裝配,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
springboot如何使用yml文件方式配置shardingsphere
這篇文章主要介紹了springboot如何使用yml文件方式配置shardingsphere問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
Java內(nèi)部類的實(shí)現(xiàn)原理與可能的內(nèi)存泄漏說明
這篇文章主要介紹了Java內(nèi)部類的實(shí)現(xiàn)原理與可能的內(nèi)存泄漏說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-10-10

