Mybatis Plus 分頁以及連表查詢
阿新 • • 發佈:2022-03-03
Mybatis Plus 分頁以及連表查詢
1、Mybatis Plus分頁配置類
import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } }
2、編寫測試類
// 第一個引數:當前頁數,第二個引數:每頁顯示多少條 Page<User> userPage = new Page<>(1,2); Page<User> page = new LambdaQueryChainWrapper<User>(userService.getBaseMapper()) .select(User::getId,User::getUsername) .lt(User::getId,10) // 條件id小於10的 .page(userPage); // 總條數 System.out.println("Total = " + page.getTotal()); // 當前頁 System.out.println("Current = " + page.getCurrent()); // 每頁數量 System.out.println("Size = " + page.getSize()); // 查詢到的資料列表 System.out.println("Records = " + page.getRecords());
3、連表查詢
- Mybatis Plus自身是沒有連表查詢的功能的,需要匯入新的依賴
<dependency>
<groupId>com.github.yulichang</groupId>
<artifactId>mybatis-plus-join</artifactId>
<version>1.2.2</version>
</dependency>
其中
- mapper 要繼承MPJBaseMapper 實現對應的方法 (必選)
- service 可以繼承MPJBaseService 實現對應的方法 (可選)
- serviceImpl 可以繼承MPJBaseServiceImpl實現對應的方法 (可選)
4、編寫測試類
List<User1> list = userMapper.selectJoinList(User1.class,
new MPJLambdaWrapper<User1>()
.select(User1::getName)
.select(User2::getName)
.selectAll(User3.class)
.selectAs(User1::getNickName, UserDTO::getUserNickName)
.leftJoin(User2.class, User2::getId, User1::getId)
.leftJoin(User3.class, User3::getId, User1::getId)