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源码
效果图:
最后附赠源码地址:demo