Mybatis-Plus-Join表連接插件集成過程
概要
Mybatis-Plus-Join 是基于 Mybatis-Plus 的擴展插件,提供了簡便的表連接查詢功能,支持左連接、右連接和內(nèi)連接等操作,同時保持 Mybatis-Plus 的使用風格。
安裝配置
1.添加依賴
在 pom.xml 中添加以下依賴:
<dependency>
<groupId>com.github.yulichang</groupId>
<artifactId>mybatis-plus-join-boot-starter</artifactId>
<version>1.4.5</version>
</dependency>
2.配置繼承結構
Mapper 層繼承
import icu.mhb.mybatisplus.plugln.base.mapper.JoinBaseMapper;
public interface UserMapper extends JoinBaseMapper<User> {
}
Service 接口繼承
import icu.mhb.mybatisplus.plugln.base.service.JoinIService;
public interface UserService extends JoinIService<User> {
}
Service 實現(xiàn)層繼承
import icu.mhb.mybatisplus.plugln.base.service.impl.JoinServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl extends JoinServiceImpl<UserMapper, User> implements UserService {
}
基本使用方法
1. 創(chuàng)建 JoinLambdaWrapper
在 Service 中可直接使用 joinLambdaWrapper() 方法:
// 方式一:通過 Service 直接獲取 JoinLambdaWrapper<User> wrapper = userService.joinLambdaWrapper(); // 方式二:手動創(chuàng)建 JoinLambdaWrapper<User> wrapper = new JoinLambdaWrapper<>(User.class);
2. 添加表連接
支持三種連接方式:
// 左連接 wrapper.leftJoin(Department.class, Department::getId, User::getDeptId); // 右連接 wrapper.rightJoin(Department.class, Department::getId, User::getDeptId); // 內(nèi)連接 wrapper.innerJoin(Department.class, Department::getId, User::getDeptId);
3. 添加查詢條件
wrapper.eq(Department::getName, "技術部")
.like(User::getName, "張")
.gt(User::getAge, 25);
4. 結束連接并執(zhí)行查詢
// 結束當前連接(重要!) wrapper.end(); // 執(zhí)行查詢 List<UserVO> result = userService.joinList(wrapper, UserVO.class);
多表連接示例
public List<UserVO> findUsersWithMultiJoin() {
JoinLambdaWrapper<User> wrapper = userService.joinLambdaWrapper();
// 第一重連接:部門表
wrapper.leftJoin(Department.class, Department::getId, User::getDeptId)
.selectAs(Department::getName, UserVO::getDeptName)
.end();
// 第二重連接:職位表
wrapper.leftJoin(Position.class, Position::getUserId, User::getId)
.eq(Position::getLevel, "P7")
.selectAs(Position::getName, UserVO::getPositionName)
.end();
return userService.joinList(wrapper, UserVO.class);
}
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
創(chuàng)建動態(tài)代理對象bean,并動態(tài)注入到spring容器中的操作
這篇文章主要介紹了創(chuàng)建動態(tài)代理對象bean,并動態(tài)注入到spring容器中的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
Maven項目如何在pom文件中引入lib下的第三方jar包并打包進去
在使用Maven進行項目開發(fā)時,引入第三方私有的Jar包可能會遇到問題,一種常見的解決方案是將Jar包添加到項目的lib目錄,并通過IDE進行配置,但這需要每個開發(fā)者單獨操作,效率低下,更好的方法是通過Maven的pom.xml文件管理這些Jar包2024-09-09
java基于netty NIO的簡單聊天室的實現(xiàn)
這篇文章主要介紹了java基于netty NIO的簡單聊天室的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07
Javaweb使用thymeleaf局部刷新結合Layui插件實現(xiàn)Html分頁
本文主要介紹了Javaweb使用thymeleaf局部刷新結合Layui插件實現(xiàn)Html分頁,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10

