昨天发了一篇关于mybatis plus的一个简答的例子,今天说点什么呢?至于它的自动生成代码和条件构造器啥的就不说了,主要说下几个小的比较有用的功能。
1、分页
我们以前写分页可能要写一堆东西,到mybatis的时候,简单点了,但是还是需要在sql中写类似 limit的sql语句。
那么mybatis plus怎么做的呢?
1)首先在配置类里加上分页插件
@Configuration
public class MybatisPlusConfig {
/**
* 分页插件
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
return new PaginationInterceptor();
}
}
2)测试
public void test(){
Page<StudentTest> page = new Page<StudentTest>(1, 15);
QueryWrapper<StudentTest> eWrapper = new QueryWrapper<StudentTest>(test);
IPage<StudentTest> pageList = studentTestMapper.selectPage(page,eWrapper);
List<StudentTest> list = pageList.getRecords();
}
可以了,运行,你会发现打出的sql自动带上了limit语句。简单吧?
2、逻辑删除
现在很多应用在处理删除数据时,都不是物理删除,都是逻辑删除,即只是标记一个状态不显示,并没有从数据库中实际删除。
这种情况下,我们在做删除时,就不能调用delete(),而是调用update()。特别是查询时,sql都要带上类似deleted=0的固定条件,每个sql都要这么带,比较麻烦。
那么mybatis plus怎么做的呢?
1)首先在配置类里加上逻辑删除插件
@Configuration
public class MyBatisPlusConfiguration {
@Bean
public ISqlInjector sqlInjector() {
return new LogicSqlInjector();
}
}
2)在domain对应删除字段上加上逻辑删除注解
@TableLogic
private Integer deleted;
3)测试
这个时候,在调用delete()方法时,你会发现,实际调用的是update()。
另外最主要的是,你在任何查询时,都不用手动去加deleted=0,后台会自动帮你加上。简单吧?
3、自动填充功能
我们的数据表中经常会有一些固定字段,要赋值固定的值,比如创建人,创建app等。我们在新增时,不想每次都手动设置这个值,那怎么办呢?
看看mybatis plus怎么做的?
1)在domain上标记需要设置值的字段
public class User {
// 注意!这里需要标记为填充字段
@TableField(fill = FieldFill.INSERT)
private String fillField;
}
2)添加配置
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(MyMetaObjectHandler.class);
@Override
public void insertFill(MetaObject metaObject) {
LOGGER.info(“start insert fill ….”);
this.setFieldValByName(“operator”, “Jerry”, metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
LOGGER.info(“start update fill ….”);
this.setFieldValByName(“operator”, “Tom”, metaObject);
}
}
运行,查看结果,发现自动给添加上了,简单吧?
好了,几个比较有用的小功能就介绍到这吧,后面再继续,请继续关注吧,共同学习。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!