mybatisPlus实现创建时间、更新时间自动添加
对于添加数据和修改记录时都要对添加时间和修改时间也要同时做更新,在我们使用mybatis时,需要手动记录当前时间为创建时间,当我们使用mybatisPlus时,就不想mybatis那样麻烦的手动去记录时间,只需要添加一个注解就可以实现自动添加功能。(1)在表中的字段与类中的属性字段要对应:private Date createTime;private Date updateTime;(2)在属性加
·
对于添加数据和修改记录时都要对添加时间和修改时间也要同时做更新,在我们使用mybatis时,需要手动记录当前时间为创建时间,当我们使用mybatisPlus时,就不想mybatis那样麻烦的手动去记录时间,只需要添加一个注解就可以实现自动添加功能。
(1)在表中的字段与类中的属性字段要对应:
private Date createTime;
private Date updateTime;
(2)在属性加上相关注解
@TableField(fill = FieldFill.INSERT) //创建时自动填充
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)//创建与修改时自动填充
private Date updateTime;
(3)加配置类
@Component
public class DateConfig implements MetaObjectHandler {
/**
* 使用mp做添加操作时候,这个方法执行
* @param metaObject
*/
@Override
public void insertFill(MetaObject metaObject) {
//设置属性值
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
}
/**
* 使用mp做修改操作时候,这个方法执行
* @param metaObject
*/
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}
(4)测试
添加操作:
@Test
public void test02() {
User user = new User();
user.setAge(18);
user.setEmail("1961871256@qq.com");
user.setName("刘老师");
int result = userMapper.insert(user);
System.out.println(result);
}
执行sql如下:
==> Preparing: INSERT INTO user ( id, name, age, email, create_time, update_time ) VALUES ( ?, ?, ?, ?, ?, ? )
==> Parameters: 1388016524932960257(Long), 刘老师(String), 18(Integer), 1961871256@qq.com(String), 2021-04-30 14:25:02.303(Timestamp), 2021-04-30 14:25:02.303(Timestamp)
<== Updates: 1
修改操作:
@Test
public void test03() {
User user = new User();
user.setName("王老师");
user.setId(1386597548726165506l);
int result = userMapper.updateById(user);
System.out.println(result);
}
执行sql如下:
==> Preparing: UPDATE user SET name=?, update_time=? WHERE id=?
==> Parameters: 王老师(String), 2021-04-30 14:27:15.918(Timestamp), 1386597548726165506(Long)
<== Updates: 1
更多推荐
已为社区贡献1条内容
所有评论(0)