首先创建一个工具类,项目启动时加载组件如
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor=new MybatisPlusInterceptor();
//mybatisplus分页插件,数据库类型为mysql
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
//乐观锁插件
interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
return interceptor;
}
1.分页插件
Page<CUser> page=new Page(2,3);//前页数,后条数
cUserMapper.selectPage(page,null);
可以看到数据从第四条开始,后边null是没传过滤器。
自定义分页示例:
第一个参数必定放@Param(“page”) Page page其余部分无需改变,
比如此方法为mybatis-plus自动生成方法,只要加个参数别的啥也不用改
成功。
2.乐观锁
首先数据库要有个字段保存乐观锁版本号
实体类字段加注解
@Version
测试:数据库Version字段会在原有基础+1
(数据库该字段设定非空,默认值0就行,测试时发现如果该字段为空则无效)
乐观锁原理就是,查询时得到版本号,若在修改时发现版本号变了则是该数据已被修改,就是sql加了一步判断and version=?。优化的话可以加个while(修改方法==0){查询方法}最好再加个计时器,一直不成功就算了