时间:2021-05-20
一、设置填充时机
使用下面的注解设置填充的时机,例如insert 、update语句
@TableField(fill = FieldFill.INSERT)有下面4种规则
源码
/** * 字段填充策略枚举类 * * <p> * 判断注入的 insert 和 update 的 sql 脚本是否在对应情况下忽略掉字段的 if 标签生成 * <if test="...">......</if> * 判断优先级比 {@link FieldStrategy} 高 * </p> * * @author hubin * @since 2017-06-27 */public enum FieldFill { /** * 默认不处理 */ DEFAULT, /** * 插入时填充字段 */ INSERT, /** * 更新时填充字段 */ UPDATE, /** * 插入和更新时填充字段 */ INSERT_UPDATE}二、设置填充的值
创建一个类实现mp提供的MetaObjectHandler接口
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;import org.apache.ibatis.reflection.MetaObject;import org.springframework.stereotype.Component;import java.time.LocalDateTime;@Componentpublic class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { setFieldValByName("字段名,例如User的createTime", LocalDateTime.now(),metaObject); } @Override public void updateFill(MetaObject metaObject) { setFieldValByName("字段名,例如User的updateTime",LocalDateTime.now(),metaObject); }}注意请将中文去掉换成自己实体对象的字段名
测试代码:
User user = new User();user.setName("张三");user.setAge(12);user.setAge(12);user.setId(11111111111L);user.setEmail("someone@qq.com");user.setManagerId(1087982257332887553L);int insert = userMapper.insert(user);System.out.println("插入"+insert);检测表中数据:
说明成功
优化填充规则
案例代码:
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;import org.apache.ibatis.reflection.MetaObject;import org.springframework.stereotype.Component;import java.time.LocalDateTime;@Componentpublic class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { boolean createTime = metaObject.hasSetter("createTime");//如果有这个字段返回true if (createTime) {//如果字段不存在则不进行下面的填充 setFieldValByName("createTime", LocalDateTime.now(), metaObject); } } @Override public void updateFill(MetaObject metaObject) { Object updateTime = getFieldValByName("updateTime", metaObject); if (null == updateTime) { //没有设置updateTime值则进行填充如果有设置值则不进行填充 setFieldValByName("updateTime", LocalDateTime.now(), metaObject); } }}到此这篇关于MybatisPlus 自动填充的实现的文章就介绍到这了,更多相关MybatisPlus 自动填充内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、需求:实现Springboot中MyBatisplus使用IPage和Page分页二、技术:MyBatisplus的IPage和Page三、实现1、代码结构
在自动生成的柱形图中,对正数和负数填充的是相同颜色(如下图所示),而对于需要展示的图表而言,正数和负数最好能以不同的填充颜色进行填充,本例介绍一种快速实现正
本文以实例讲述了ThinkPHP表单自动提交验证的实现过程,详细步骤如下所示:一、模板部分:ThinkPHP示例:表单提交、自动验证和自动填充标题:邮箱:内容:
自动保存密码和自动填充功能很便利,用户在使用Safari登录某个网站时,可以直接调用已经保存的密码进行自动填充。移动端的Safari浏览器自从新增了自动填充功能
excel是我们常用的办公软件,往往我们会用到自动填充序列功能,那么excel自动填充序列怎么用?下面小编带来自动填充序列使用教程详解,希望对大家有所帮助。自动