码畜认识下mybatis plus的几个绝招

昨天发了一篇关于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进行处理,非常感谢!

上一篇 2018年10月18日
下一篇 2018年10月18日

相关推荐