springboot整合mybatis-plus实现多表分页查询

springboot整合mybatis-plus实现多表分页查询

1.新建一个springboot工程
2.需要导入mybatis和mybatis-plus的依赖文件


            com.baomidou
            mybatis-plus-boot-starter
            3.1.1
        
         
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.0.1
        

3.application.yml配置文件

server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mybatisplus?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=UTC
    username: root
    password: 数据库密码
mybatis:
  mapper-locations: classpath*:mapper/*.xml

mybatis-plus:
  mapper-locations: classpath:/mapper/*Mapper.xml
logging:
  level:
    com.tuanzi.*: debug

4.首先我们需要写一个类来配置分页插件

省略import
@EnableTransactionManagement
@Configuration
@MapperScan("com.tuanzi.*.mapper*")
public class MybatisPlusConfig {

    /**
     * 分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor(){
        return new PaginationInterceptor();
    }
}

5.controller类

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    UserService userService;

    /**
     * 多表关联,分页查询(1对1)
     * @param page
     * @return
     */
    @RequestMapping("/findAll")
    public Result> findAll(@RequestBody Page page){

         return userService.pages(page);

    }

    /**
     * 多表关联,分页查询(1对多)
     * @param page
     * @return
     */
    @RequestMapping("/selectAll")
    public Result> selectAll(@RequestBody Page page){

        return userService.pageList(page);

    }

}

6.service类

public interface UserService extends IService {

    Result> pages(Page page);

    Result> pageList(Page page);
}

7.service实现类

@Service
public class UserServiceImpl extends ServiceImpl implements UserService {

    @Autowired
    UserMapper userMapper;
    @Override
    public Result> pages(Page page) {
        IPage userIPage = userMapper.Pages(page);
        return Result.getSuccess("分页查询成功",userIPage);
    }

    @Override
    public Result> pageList(Page page) {
        IPage userIPage = userMapper.pageList(page);
        return Result.getSuccess("分页查询成功",userIPage);
    }
}

8.mapper接口

注意!!: 如果入参是有多个,需要加注解指定参数名才能在xml中取值
page 为分页对象,xml中可以从里面进行取值,传递参数 Page 即自动分页,必须放在第一位(你可以继承Page实现自己的分页对象)

@Mapper
@Repository
public interface UserMapper extends BaseMapper {

    IPage Pages(@Param("page") Page page);

    IPage pageList(@Param("page") Page page);
}

9.xml文件

一对一关联

 
    
        
        
        
        
        
        
            
            
            
        
    

一对多关联


    
        
        
        
        
        
       
           
           
           
       
    

SQL语句:


    

10.这样就基本完成了!我这里省略了实体类
我们运行一下,用postman测试一下结果
这里我们需要传2个参数,当然我们也可以不用传,因为mybatis-plus有默认值
来看下mybatis-plus的page源码
springboot整合mybatis-plus实现多表分页查询_第1张图片
效果图:
springboot整合mybatis-plus实现多表分页查询_第2张图片
springboot整合mybatis-plus实现多表分页查询_第3张图片

OK

最后附赠源码地址:demo

你可能感兴趣的:(SpringBoot)