Dynamic-add-date是基于Mybatis插件原理开发的可以动态在Insert
和Update
Sql语句中添加日期列和对应的值的插件。
添加下面的依赖到你的pom文件中:
<dependency>
<groupId>io.github.yidasanqian</groupId>
<artifactId>dynamic-add-date</artifactId>
<version>1.0.4</version>
</dependency>
若使用Gradle/Grails:
compile 'io.github.yidasanqian:dynamic-add-date:1.0.4'
然后在mybatis-config.xml
配置文件中加入如下设置即可:
<plugins>
<plugin interceptor="io.github.yidasanqian.AddDateInterceptor">
</plugin>
</plugins>
例如,原始Sql为:
insert into user(name, profession) values(?, ?)
使用该插件后Sql语句为:
insert into user(name, profession, gmt_create, gmt_modified) values(?, ?, '2017-10-15 10:10:10', '2017-10-15 10:10:10')
批量插入的情况:
insert into user(name, profession) values(?, ?), (?, ?), (?, ?)
使用该插件后Sql语句为:
insert into user(name, profession, gmt_create, gmt_modified) values(?, ?, '2017-10-15 10:10:10', '2017-10-15 10:10:10'),
(?, ?, '2017-10-15 10:10:10', '2017-10-15 10:10:10'), (?, ?, '2017-10-15 10:10:10', '2017-10-15 10:10:10')
默认新建日期的列名为 gmt_create
, 更新日期的列名为 gmt_modified
。
可以通过设置key createDateColumnName
和 updateDateColumnName
来分别指定日期列的名称:
<plugin interceptor="io.github.yidasanqian.AddDateInterceptor">
<property name="createDateColumnName" value="gmt_create"/>
<property name="updateDateColumnName" value="gmt_modified"/>
</plugin>
首先mybatis依赖
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
也是在mybatis-config.xml
配置文件中加入如下设置:
<plugin interceptor="io.github.yidasanqian.AddDateInterceptor">
<property name="createDateColumnName" value="gmt_create"/>
<property name="updateDateColumnName" value="gmt_modified"/>
</plugin>
然后在 application.properties
加入如下配置即可:
mybatis.config-location=classpath:mybatis-config.xml
实际应用中并不是所有的表都需要创建时间和更新时间字段,如何设置忽略处理的表呢?
也是在mybatis-config.xml
配置文件中加入如下设置:
<plugins>
<plugin interceptor="io.github.yidasanqian.AddDateInterceptor">
<property name="ignoreTables" value="^user.*, permission"/>
</plugin>
</plugins>
其中name=ignoreTables
属性值为固定,不能变,value的格式:表名, 表名
。
其中value的值为表名,支持正则表达式,且多个表名以英文逗号,
分隔。