mybatis-plus之如何實(shí)現(xiàn)in嵌套sql
mybatis-plus實(shí)現(xiàn)in嵌套sql
今天使用jeegboot看源碼時(shí)發(fā)現(xiàn)用戶(hù)權(quán)限部分的代碼
條件查詢(xún)的inSql方法的用法:
即sql中的 in (select column from table where 條件) 用法
/**
* 根據(jù)部門(mén) Id 和 QueryWrapper 查詢(xún)
*
* @param page
* @param departId
* @param queryWrapper
* @return
*/
@Override
public IPage<SysUser> getUserByDepartIdAndQueryWrapper(Page<SysUser> page, String departId, QueryWrapper<SysUser> queryWrapper) {
?? ?LambdaQueryWrapper<SysUser> lambdaQueryWrapper = queryWrapper.lambda();
?? ?lambdaQueryWrapper.eq(SysUser::getDelFlag, "0");
? ? ? ?lambdaQueryWrapper.inSql(SysUser::getId, "SELECT user_id FROM sys_user_depart WHERE dep_id = '" + departId + "'");
? ? ? ?return userMapper.selectPage(page, lambdaQueryWrapper);
}mybatis-plus sql中in的用法
示例:
@Select("<script>" +
? ? ? ? ? ? "SELECT * FROM node mn " +
? ? ? ? ? ? "WHERE n.state IN " +
? ? ? ? ? ? "<foreach item = 'state' collection = 'states' index = 'index' open = '(' separator = ',' close = ')'>" +
? ? ? ? ? ? "#{state}" +
? ? ? ? ? ? "</foreach>" +
? ? ? ? ? ? "</script>")
? ? ? ? ? ? List<Node> queryIdAndPlanDay(List states);SQL語(yǔ)句需要使用<script></script>包起來(lái),接著使用foreach進(jìn)行循環(huán),再將循環(huán)后得到的值放入sql中就ok了
item:別名,就是遍歷集合后用于接收數(shù)據(jù)的參數(shù)名,可自由更改collection:集合名字,是你傳入的集合參數(shù)名字,必須與參數(shù)名字相同open:sql開(kāi)始填充符號(hào),相當(dāng)于state in ()中的in后開(kāi)始的第一個(gè)符號(hào),即(separator:分隔符,是遍歷集合后組成參數(shù)的分隔符close:sql結(jié)尾填充符號(hào),是state in ()中的in后開(kāi)始的最后一個(gè)符號(hào),即)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring中的HandlerMapping執(zhí)行流程詳解
這篇文章主要介紹了Spring中的HandlerMapping執(zhí)行流程詳解,HandlerMapping在Spring MVC框架的jar包下面,他是處理映射器,為用戶(hù)發(fā)送的請(qǐng)求找到合適的Handler Adapter,它將會(huì)把請(qǐng)求映射為HandlerExecutionChain對(duì)象,需要的朋友可以參考下2023-08-08
Mybatis中如何設(shè)置sqlSession自動(dòng)提交
在MyBatis中,默認(rèn)情況下,獲取的SqlSession對(duì)象不會(huì)自動(dòng)提交事務(wù),這意味著在進(jìn)行更新、刪除或插入等操作后,需要顯式調(diào)用commit方法來(lái)提交事務(wù),但是,可以在獲取SqlSession時(shí)通過(guò)將openSession方法的參數(shù)設(shè)置為true2024-09-09
Java 實(shí)戰(zhàn)項(xiàng)目錘煉之校園宿舍管理系統(tǒng)的實(shí)現(xiàn)流程
讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+jsp+javaweb+mysql+ajax實(shí)現(xiàn)一個(gè)校園宿舍管理系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2021-11-11
Jackson中json格式的字符串與對(duì)象的互相轉(zhuǎn)換方式
這篇文章主要介紹了Jackson中json格式的字符串與對(duì)象的互相轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
SpringBoot+MyBatis+AOP實(shí)現(xiàn)讀寫(xiě)分離的示例代碼
高并發(fā)這個(gè)階段,肯定是需要做MySQL讀寫(xiě)分離的。本文主要介紹了SpringBoot+MyBatis+AOP實(shí)現(xiàn)讀寫(xiě)分離的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
Java Spring5學(xué)習(xí)之JdbcTemplate詳解
這篇文章主要介紹了Java Spring5學(xué)習(xí)之JdbcTemplate詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-05-05
BCryptPasswordEncoder加密與MD5加密的區(qū)別及說(shuō)明
這篇文章主要介紹了BCryptPasswordEncoder加密與MD5加密的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08

