实例详解MyBatis

网友投稿 573 2022-11-05

实例详解MyBatis

实例详解MyBatis

目录什么是自动填充1.这个功能是做什么的呢?2.下面用一个例子来学习这个功能3.测试4.结果

什么是自动填充

有些表中会有更新时间、创建时间、更新人或者创建人这些字段。

每次对数据进行新增、删除、修改时都需要对这些字段进行设置。传统的做法是在进行这些操作前,对Entity的字段进行set设置,然后再进行操作。这种做法不仅容易忘记导致出错、而且代码会显得特别冗余。

虽然新增时间和修改时间可以使用数据库的时间,但是新增人和修改人就不能使用这样的功能。

所以MP就提供自动填充的功能,帮助自定设置这些字段的值,提升开发效率,代码也会显得特别优雅。

1.这个功能是做什么的呢?

有的时候,我们可能有这样子的需求,在插入(insert)或者更新数据(update)的时候可以自动填充数据,比如密码,version等。在mp中为我们提供了这种功能,非常的方便!

2.下面用一个例子来学习这个功能

2.1添加注解@TableField(),这个注解里面的fill提供了填充的功能

@TableField(fill = FieldFill.INSERT) //插入时进行填充

private String password;

FirledFill提供了以下几种模式,根据情况可以自己进行选择

public enum FieldFill {

DEFAULT, //默认不进行处理

INSERT, //插入的时候填充字段

UPDATE, //更新的时候填充字段

INSERT_UPDATE; //插入和更新的时候填充字段

private FieldFill() { //构造方法

}

}

2.2编写MyMetaObjectorHandler,实现源对象字段填充控制器抽象类,根据需求实不同的方法,这里是实现一个插入填充的方法

public class MyMetaObjectHandler implements MetaObjectHandler {

//插入填充

@Override

public void insertFill(MetaObject metaObject) {

Object password = getFieldValByName("password", metaObject);

if (ObjectUtils.isNull(password)) {

http:// setFieldValByName("password", "88888888", metaObject);

}

}

//更新填充

@Override

public void updateFill(MetaObject metaObject) {

GMGIkkwLav }

}

2.3将自定义的MyObjectHandler进行bean注入MybatisPlusConfig中

@Configuration

public class MybatisPlusConfig {

@Bean //插入填充

public MyMetaObjectHandler myMetaObjectHandler(){

return new MyMetaObjectHandler();

}

}

3.测试

@Test

public void test() {

User user = new User();

user.setAge(29);

user.setEmail("test@163.com");

user.setUserName("guanyu");

user.setName("关羽");

user.setAddress("上海");

// user.setPassword("123456"); //将密码进行注释,如果插入填充生效的话,数据库默认就填充了上面的88888888为password的值

int result = userMapper.insert(user);

System.out.println("result=" + result);

System.out.println(user.getId());

}

4.结果

综上所示,自动填充成功。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:gcc-poison :帮助开发人员禁止应用程序中的不安全的C/C++函数的简单的头文件
下一篇:一个提供黑白色天气日历图片服务的node程序,用于制作树莓派墨水屏日历
相关文章

 发表评论

暂时没有评论,来抢沙发吧~