1、分页插件
1.1、添加配置类
@Configuration
//扫描mapper接口所在的包,可以将主类中的注解移到此处
@MapperScan("com.zyz.mybatisplus.mapper")
public class MyBatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
1.2、测试
@Test
public void testPage(){
Page<User> page = new Page<>(2,3);
userMapper.selectPage(page,null);
System.out.println(page.getRecords());
System.out.println(page.getPages());
System.out.println(page.getTotal());
System.out.println(page.hasNext());
System.out.println(page.hasPrevious());
}
1.3、测试结果
2、XML自定义分页
2.1、UserMapper中定义接口方法
/**
* 通过年龄查询用户信息并分页
* @param page mybatis-plus 所提供的分页对象,必须位于第一个参数的位置
* @param age
* @return
*/
Page<User> selectPageVo(@Param("page") Page<User> page,@Param("age") Integer age);
2.2、UserMapper.xml中编写SQL
<!-- 自定义分页 查询-->
<select id="selectPageVo" resultType="User">
select uid,user_name,age,email from t_user where age > #{age}
</select>
这里使用mybatis-plus中的起别名。需要在yml文件中进行配置
spring:
# 配置数据源信息
datasource:
# 配置数据源类型
type: com.zaxxer.hikari.HikariDataSource
# 配置连接数据库的各个信息
username: root
password: root
url: jdbc:mysql://localhost:3306/mybatis_plus?allowMultiQueries=true&characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
driver-class-name: com.mysql.cj.jdbc.Driver
server:
port: 8383
mybatis-plus:
configuration:
#配置Mybatis日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#设置mybatis-plus的全局配置:
global-config:
db-config:
#设置实体类对应数据库中表的统一前缀
table-prefix: t_
#配置mybatis-plus的主键策略
id-type: auto
#配置类型别名所对应的包
2.3、测试
@Test
public void testPageInDefine(){
Page<User> page = new Page<>(2,3);
userMapper.selectPageVo(page,22);
System.out.println(page.getRecords());
System.out.println(page.getPages());
System.out.println(page.getTotal());
System.out.println(page.hasNext());
System.out.println(page.hasPrevious());
}