分页插件:
Mybatis-plus有自己的分页插件,使用方法如下:
1.配置类中注入bean
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
// paginationInterceptor.setOverflow(false);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
// paginationInterceptor.setLimit(500);
// 开启 count 的 join 优化,只针对部分 left join
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}
2. 代码编写:
service:
@Override
public Page testPage(long current, long size) {
Page<Account> page=new Page<Account>(current,size); //current 当前页数 size 当前页显示个数
accountMapper.selectPage(page,null);
return page;
}
controller:
@RequestMapping("/testPage")
public Page testPage(long current,long size){
Page page = accountService.testPage(current, size);
return page;
}
total: 总数
records:记录集合
pages:总页数
current:当前页
size:当前页总数
逻辑删除
逻辑删除就是给数据库表设置一个状态字段,当对某条数据进行删除的时候,就将状态进行修改,这样就不会真正的删除数据,在查询的时候也会查看状态字段进行显示。
数据库加入deleted字段:
实体类中加上deleted
字段并且加上逻辑注解
@TableLogic
private Integer deleted;
application.yml配置状态(删除是1,未删除是0)
mybatis-plus:
global-config:
db-config:
logic-delete-value: 1
logic-not-delete-value: 0
测试:
删除操作的sql语句:(自动使用update)
UPDATE account SET deleted=1 WHERE id=? AND deleted=0
查询的sql语句:
SELECT id,name,money,create_time,update_time,version,deleted FROM account WHERE deleted=0