MyBatisPlus自动填充

项目中经常会遇到一些数据,每次都使用相同的方式填充,例如记录的创建时间,更新时间等。

我们可以使用MyBatis Plus的自动填充功能,完成这些字段的赋值工作;

(1)数据库表中添加自动填充字段

在User表中添加datetime类型的新的字段 如: create_time(添加时间)、update_time(更新时间)

(2)实体上添加注解

@Data
public class User {private Long id;private String name;private Integer age;private String email;@TableField(fill = FieldFill.INSERT) // 新增时自动填充 createTime private Date createTime;@TableField(fill = FieldFill.INSERT_UPDATE) // 新增(第一次添加)和修改时自动填充 updateTimeprivate Date updateTime;
}

(3)实现元对象处理器接口

package com.pqy.mybatisplus.handler;import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;import java.util.Date;/*** @author panqiyi* @date 2022/4/20 - 15:16*/
@Component // 别忘记
public class MyMetaObjectHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {  // 新增插入时 自动填充更新createTime和updateTime字段时间// (属性字段,填充的值,元对象)this.setFieldValByName("createTime",new Date(),metaObject);  this.setFieldValByName("updateTime",new Date(),metaObject);}@Overridepublic void updateFill(MetaObject metaObject) { // 修改时 自动填充更新updateTime字段时间this.setFieldValByName("updateTime",new Date(),metaObject);}
}

(4) 测试

添加

@Testpublic void insert(){User user = new User();user.setAge(108);user.setName("pqy");user.setEmail("pqy@qq.com");int insert = userMapper.insert(user);}

修改

 @Testpublic void update(){User user = userMapper.selectById(1516962254413713409L);user.setName("ppp");int i = userMapper.updateById(user);}

MyBatisPlus自动填充相关推荐

  1. mybatis 自动填充无效_开发小知识-mybatis-plus自动填充与读写分离

    mybatis-plus 自动填充 说明 我们在设计表结构的时候,往往会额外添多如下几个字段 create_time[表字段]-- createTime[实体字段] : 创建时间 update_tim ...

  2. MyBatis-Plus——自动填充功能实现

    文章目录 MyBatis-Plus--自动填充功能 1.什么是自动填充 2.数据库层面实现 3.编程实现(推荐) MyBatis-Plus--自动填充功能 1.什么是自动填充 有些表中会有更新时间up ...

  3. MyBatis-plus自动填充功能之自动填充时间

    MyBatis-plus自动填充功能之自动填充时间 一.前期工作 二.自动填充 2.1 数据库级别 2.2 代码级别 在实际操作过程中,我们并不希望创建时间.修改时间这些来手动进行,而是希望通过自动化 ...

  4. Mybatis-Plus自动填充的实现示例

    在常用业务中有些属性需要配置一些默认值,MyBatis-Plus提供了实现此功能的插件.在这里修改user表添加 create_time 字段和 update_time 字段,在User类中添加对应属 ...

  5. mybatis-plus自动填充(创建时间\修改时间)

    编辑pojo中公共的basePojo类(继承关系) package com.jt.pojo;import com.baomidou.mybatisplus.annotation.FieldFill; ...

  6. 尚医通——后台搭建——MybatisPlus自动填充和乐观锁

    目录标题 自动填充和乐观锁 1.更新操作 2.自动填充 1.1数据库修改 1.2实体类修改 1.3实现元对象处理器接口 3.乐观锁 3.1场景 4.乐观锁实现流程 4.1修改实体类 4.2创建配置文件 ...

  7. Mybatis-plus自动填充功能因版本(3.0.5/3.4.2)不同导致的问题:metaObject.setValue()和this.setFieldValByName() 方法的关系

    首先查看两个版本this.setFieldValByName(MetaObjectHandler类中的方法)的源码 Mybatis-plus(3.0.5): public interface Meta ...

  8. MyBatis-Plus自动填充字段(创建时间、修改时间、uuid等)

    字段填充器 配置需要自动填充的字段,字段名采用驼峰命名规则 @Component public class MpMetaObjectHandler implements MetaObjectHandl ...

  9. MyBatis-Plus自动填充功能填坑

    使用strictInsertFill填充字段的时候,需要保证字段类型和填充类型一致 /*** @author yinfeng* @description mybatis-pluis代码填充* @sin ...

最新文章

  1. react 组件样式_如何使用样式化组件为React组件创建视觉变体
  2. goland go test_Go单元测试实践一,快速上手
  3. 20135320赵瀚青LINUX第四章读书笔记
  4. IOS沙盒中的Documents、Library、tmp区别
  5. qmake生成VS的vcproj/sln工程文件
  6. 新浪sae部署html,利用新浪sae搭建discuz x2论坛
  7. 芯原创始人戴伟民:嵌入式人工智能与芯粒的历史机遇
  8. 设置橘子浏览器的newtab页面
  9. opencv图像连通区域分析
  10. 华为手机字体改简体_华为字体买了之后改不了 华为手机字体改简体
  11. 网页视频无法快进播放时(刷网课)
  12. 北大计算机考研题一般出自哪里,北大计算机考研常见问题解答
  13. 第一章 使用SOAPUI测试和开发Web Services Stubs
  14. Quartus 在工具栏设置功能快捷方式
  15. c语言:(指针)实现输入三个整数从小到大排序
  16. “理财管家”正式发布了!
  17. CISP证书价值如何
  18. 如何快速了解一个系统
  19. 生成符合SCI论文投稿要求的高清图方法
  20. 我们是科幻迷(刘慈欣)

热门文章

  1. python+opencv+dlib实现人脸检测与表情识别
  2. 关于微信公众号支付接口开发遇到的奇葩问题,始终返回get_brand_wcpay_request:fail。
  3. 计算机专业招聘人才的需求,对计算机专业人才需求现状
  4. 新彩虹世界密码系统是多少_希望最近的世界密码日是我们需要的最后一个
  5. 重庆大学计算机学院百度百科,朱晓红(重庆大学计算机学院副教授)_百度百科...
  6. 机器学习周志华——机器学习的应用领域
  7. 爬虫——Scrapy框架案例一:手机APP抓包
  8. GPS定位系统(二)——Android端
  9. 背靠Mobileye/降价抢市场,经纬恒润闯关IPO背后“危机四伏”
  10. Qt 图片显示不完全/图片显示变小 解决