MyBatisPlus自动填充
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自动填充相关推荐
- mybatis 自动填充无效_开发小知识-mybatis-plus自动填充与读写分离
mybatis-plus 自动填充 说明 我们在设计表结构的时候,往往会额外添多如下几个字段 create_time[表字段]-- createTime[实体字段] : 创建时间 update_tim ...
- MyBatis-Plus——自动填充功能实现
文章目录 MyBatis-Plus--自动填充功能 1.什么是自动填充 2.数据库层面实现 3.编程实现(推荐) MyBatis-Plus--自动填充功能 1.什么是自动填充 有些表中会有更新时间up ...
- MyBatis-plus自动填充功能之自动填充时间
MyBatis-plus自动填充功能之自动填充时间 一.前期工作 二.自动填充 2.1 数据库级别 2.2 代码级别 在实际操作过程中,我们并不希望创建时间.修改时间这些来手动进行,而是希望通过自动化 ...
- Mybatis-Plus自动填充的实现示例
在常用业务中有些属性需要配置一些默认值,MyBatis-Plus提供了实现此功能的插件.在这里修改user表添加 create_time 字段和 update_time 字段,在User类中添加对应属 ...
- mybatis-plus自动填充(创建时间\修改时间)
编辑pojo中公共的basePojo类(继承关系) package com.jt.pojo;import com.baomidou.mybatisplus.annotation.FieldFill; ...
- 尚医通——后台搭建——MybatisPlus自动填充和乐观锁
目录标题 自动填充和乐观锁 1.更新操作 2.自动填充 1.1数据库修改 1.2实体类修改 1.3实现元对象处理器接口 3.乐观锁 3.1场景 4.乐观锁实现流程 4.1修改实体类 4.2创建配置文件 ...
- Mybatis-plus自动填充功能因版本(3.0.5/3.4.2)不同导致的问题:metaObject.setValue()和this.setFieldValByName() 方法的关系
首先查看两个版本this.setFieldValByName(MetaObjectHandler类中的方法)的源码 Mybatis-plus(3.0.5): public interface Meta ...
- MyBatis-Plus自动填充字段(创建时间、修改时间、uuid等)
字段填充器 配置需要自动填充的字段,字段名采用驼峰命名规则 @Component public class MpMetaObjectHandler implements MetaObjectHandl ...
- MyBatis-Plus自动填充功能填坑
使用strictInsertFill填充字段的时候,需要保证字段类型和填充类型一致 /*** @author yinfeng* @description mybatis-pluis代码填充* @sin ...
最新文章
- react 组件样式_如何使用样式化组件为React组件创建视觉变体
- goland go test_Go单元测试实践一,快速上手
- 20135320赵瀚青LINUX第四章读书笔记
- IOS沙盒中的Documents、Library、tmp区别
- qmake生成VS的vcproj/sln工程文件
- 新浪sae部署html,利用新浪sae搭建discuz x2论坛
- 芯原创始人戴伟民:嵌入式人工智能与芯粒的历史机遇
- 设置橘子浏览器的newtab页面
- opencv图像连通区域分析
- 华为手机字体改简体_华为字体买了之后改不了 华为手机字体改简体
- 网页视频无法快进播放时(刷网课)
- 北大计算机考研题一般出自哪里,北大计算机考研常见问题解答
- 第一章	使用SOAPUI测试和开发Web Services Stubs
- Quartus 在工具栏设置功能快捷方式
- c语言:(指针)实现输入三个整数从小到大排序
- “理财管家”正式发布了!
- CISP证书价值如何
- 如何快速了解一个系统
- 生成符合SCI论文投稿要求的高清图方法
- 我们是科幻迷(刘慈欣)
热门文章
- python+opencv+dlib实现人脸检测与表情识别
- 关于微信公众号支付接口开发遇到的奇葩问题,始终返回get_brand_wcpay_request:fail。
- 计算机专业招聘人才的需求,对计算机专业人才需求现状
- 新彩虹世界密码系统是多少_希望最近的世界密码日是我们需要的最后一个
- 重庆大学计算机学院百度百科,朱晓红(重庆大学计算机学院副教授)_百度百科...
- 机器学习周志华——机器学习的应用领域
- 爬虫——Scrapy框架案例一:手机APP抓包
- GPS定位系统(二)——Android端
- 背靠Mobileye/降价抢市场,经纬恒润闯关IPO背后“危机四伏”
- Qt 图片显示不完全/图片显示变小 解决