环境
- Springboot:2.1.1.RELEASE
- Mybatis-plus:2.2.0
- 依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatisplus.version}</version>
</dependency>
- application.yml内关于plus的配置(参考,不一定需要)
mybatis-plus:
mapper-locations: classpath:/mapper/*Mapper.xml
typeAliasesPackage: com.lvjian.jiyu.entity
global-config:
id-type: 2
db-column-underline: true
refresh-mapper: true
configuration:
map-underscore-to-camel-case: true
cache-enabled: true
集成
编写配置类
MybatisPlusConfig.java
package com.xxx.xxx.config;
import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableTransactionManagement
@Configuration
@MapperScan("com.xxx.xxx.mapper")
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
在通用CRUD方法中使用
适用于不自己写sql语句,直接使用mybatis自带的方法,一般在service层使用
// pageNum是页码,pageSize是该页码内包含的记录数
Page pageBean = new Page<Tenant>(pageNum, pageSize);
List<User> users = userMapper.selectPage(pageBean);
pageBean.setRecords(users);
在自己编写sql的场景里使用
有些时候业务比较复杂,需要在mapper的xml文件里自己编写xml文件。
- 需要编写xml的mapper方法为
List<User> getUserListByName(@Param("page") Pagination page, @Param("name") String name);
注意Pagination必须有,且最好在第一个参数
- service层调用mapper
// pageNum是页码,pageSize是该页码内包含的记录数
Page pageBean = new Page<Tenant>(pageNum, pageSize);
List<User> users = userMapper.getUserListByName(pageBean,"spz");
pageBean.setRecords(users);
返回举例(JSON)
total 为总记录数,pages是总页数,current是当前页码
{
"total": 2,
"size": 1,
"pages": 2,
"current": 1,
"records": [
{
"modifiedTime": 1546421510000,
"rentFlag": 0,
"createTime": 1545358162000,
"sex": 1,
"idCardBackPath": "",
"name": "张三"
}
]
}
个人公众号,定期分享各种技术干货,欢迎扫码关注!