先放一张表生成策略对应的结果

描述
DEFAULT 默认不处理
INSERT 插入时填充字段
UPDATE 更新时填充字段
INSERT_UPDATE 插入和更新时填充字段

此处需要注意一下,如果MyBatisPlus中有一些公共字段例如修改时间,创建时间,乐观锁等等

创建是采用INSERT方案

修改时采用UPDATE

在修改时注意,使用MyBatis-Plus的update方法,传入QueryWrapper或者直接传null

用updateById会出现策略不生效的情况

贴上实现生成策略接口的代码

package com.mengxiangnongfu.project.configure.mybatisplus.tools;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.mengxiangnongfu.project.util.TimeHelper;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component; /**
* 自动填充处理类
* mybatis-plus 3.3版本以上 使用注解的方式
* https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/89450006?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param
*
* @author Yang
* @version 1.0
* @see
**/
@Component
public class MyMetaObjectHandler implements MetaObjectHandler { @Override
public void insertFill(MetaObject metaObject) {
      //version是字段名 第二个参数是填充的数据
this.setFieldValByName("version", new Long(0), metaObject);
this.setFieldValByName("createTime", TimeHelper.getCurrentTime14(), metaObject);
this.setFieldValByName("updateTime", TimeHelper.getCurrentTime14(), metaObject);
} @Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime", TimeHelper.getCurrentTime14(), metaObject);
}
}

记一次在MyBatis-Plus中 @TableField 自动填充中遇见的坑的更多相关文章

  1. Mybatis plus通用字段自动填充的最佳实践总结

    在进行持久层数据维护(新增或修改)的时候,我们通常需要记录一些非业务字段,比如:create_time.update_time.update_by.create_by等用来维护数据记录的创建时间.修改 ...

  2. mybatis plus 增删改自动填充字段值

    说明 本文实现以下需求效果 创建数据时自动填充 createUserId 和 createTime 更新数据时自动填充 updateUserId 和 updateTime(每次修改都自动填充新的 up ...

  3. 解决Sybase PowerDesigner 数据库设计中 Name 自动填充Code

    在使用 Sybase PowerDesigner 进行数据库设计时,为了理清思路,需要将name改为中文名称,但是这个软件会自动将name填 充为code,可以通过如下配置修改: 选择tools-&g ...

  4. react中密码自动填充及解决火狐浏览器,360浏览器记住密码后,密码框自动填充终极解决方案

    先直接上核心代码如下: 在火狐浏览器,360浏览器,初次加载,bug长这样: 如果你想通过生命周期componentDidMounted等生命周期进行置空操作都是不行的,这可能是浏览器自带的特性记住密 ...

  5. 【Mybatis架构】Mapper映射文件中的#{}与${}

    前言 还记得当初从北京回来的时候,跟着倪文杰师姐做JavaITOO的一卡通模块,我亲姐贾梦洁带着我一块做,期间,我遇到了一个特别奇葩的问题,就死我要实现Mybatis的模糊查询,根据当时亲姐教给我方法 ...

  6. 记一次 IDEA mybatis.generator 自定义扩展插件

    在使用 idea mybatis.generator 生成的代码,遇到 生成的代码很多重复的地方, 虽然代码是生成的,我们也不应该允许重复的代码出现,因为这些代码后期都要来手动维护. 对于生成时间戳注 ...

  7. mybatis 中的 xml 配置文件中 ‘<’、 ‘>’ 处理

    mybatis 中的 xml 配置文件中 '<'. '>' 处理 1.使用转义字符将 '<'. '>' 替换掉. 描述 字符 转义字符 小于号 < < 大于号 &g ...

  8. 谈一下思考,关于mybatis中<foreach collection="list">中list得来的原因 没看到官方说明

    <foreach> 是在sql语句中进行多个id查询 时用到的,因为mybatis代替jdbc和hibernate, 使用 在xml文件中编写sql语句,这是一个标签文件.然后在 dao层 ...

  9. 【记录】mybatis中获取常量类中数据

    部分转载,已注明来源: 1.mybatis中获取常量类中数据 <update id="refuseDebt"> UPDATE dt_debt a SET         ...

  10. Mybatis中动态SQL语句中的parameterType不同数据类型的用法

    Mybatis中动态SQL语句中的parameterType不同数据类型的用法1. 简单数据类型,    此时#{id,jdbcType=INTEGER}中id可以取任意名字如#{a,jdbcType ...

随机推荐

  1. JS 动态获取 Url 参数(封装函数)

    话不多说直接上代码: 封装函数如下: (如果urls固定,可以只写一个name变量) getQueryString(name, urls) { var url = urls; // 获取URL // ...

  2. spark2.0.1源码编译

    一.编译源码步骤演示详解 . 编译spark环境要求 1.必须在linux系统下编译(以centos6.4为例) 2.编译使用的JDK版本必须是1.6以上(以JDK1.8为例) 3.编译需要使用Mav ...

  3. 京准GPS北斗卫星时钟同步系统投运国电内蒙古晶阳能源有限公司

    京准GPS北斗卫星时钟同步系统投运国电内蒙古晶阳能源有限公司  2020年1月初期,我京准科技生产研发的GPS北斗卫星时钟同步系统投运国电内蒙古晶阳能源有限公司,为该单位的能源管理系统及其他各业务子系 ...

  4. 用python从网页下载单词库

    从网站下载单词库 1 每一页有几百个单词 2 每一个单词有独立的URL,URL中包含单词的中文解释 3 使用的库 requests,pyquery,web #coding:utf-8 import r ...

  5. [Swift]Xcode格式化代码快捷键

    写代码最常用的快捷键莫过于格式化代码了,最近玩Swift,百度上没有找到简单明了的内容,特意记录一下. Control + I     自动调整缩进 可以选中相应的代码 或 Command + A全选 ...

  6. 12组-Beta冲刺-3/5

    一.基本情况 队名:字节不跳动 组长博客:https://www.cnblogs.com/147258369k/p/15599024.html Github链接:https://github.com/ ...

  7. 消息队列RocketMQ应用

    引用: https://www.cnblogs.com/ciel717/p/16180083.html 官方手册:https://help.aliyun.com/document_detail/442 ...

  8. 【B站】B站计算集数时长,调节任意倍速

    打开浏览器,任意收藏一个网址,将URL替换为下面的代码并保存 打开任意B站视频页面,点击这个收藏的网址,即可在页面右边看到如下窗口 javascript: (function () { var hou ...

  9. SQL注入之延时注入(10)

    以下提供两种方式进行延时注入 GET /sqli/Less-10/?id=1"+and+sleep(5)--+ HTTP/1.1 Host: 192.168.245.146:6101 Use ...

  10. IaaS--云虚拟机(二)(何恺铎《深入浅出云计算》笔记整理)

    [如何挑选合适的虚拟机型号] 1.根据类型.云厂商会提供均衡型.计算密集型.内存优化型.图形计算型等常见的虚拟机类型.这些类型对应着硬件资源的某种合理配比或针对性强化,方便你在面向不同场景时,选择最合 ...