1. 程式人生 > 其它 >Mybatis Plus 分頁以及連表查詢

Mybatis Plus 分頁以及連表查詢

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)