MyBatis数据填充插件
对于新增或修改时,可以对数据进行默认值填充。
使用场景: 例如新增时默认填充创建时间,修改时默认填充修改时间。
引入maven配置
<dependency>
<groupId>com.wueasy</groupId>
<artifactId>wueasy-data-mybatis-plugin</artifactId>
<version>最新版本</version>
</dependency>
代码中使用注解
只能在mybatis映射实体类中使用
- 使用注解
@DataAutoFill
,标识当前属性需要自动填充 - 参数
type
:操作类型,INSERT
新增,UPDATE
修改,INSERT_UPDATE
新增或修改 - 参数
value
:指定赋值,DATE
日期,USER_ID
当前登录用户id,USER_NAME
用户名称,LOGIN_NO
:登录名,UUID
,TIMESTAMP
时间戳,IP
访问ip - 参数
force
:是否强制更新,默认true
,配置强制更新后,不管内容是否有值,直接覆盖;反之为空的时候填充数据 - 参数
pattern
:格式化,目前主要使用在日期格式化,如果配置value = DataValue.DATE
并且当前属性类型为String
,那么会把日期格式化指定类型。
@Data
@Table(name = "demo")
public class Demo implements Serializable {
/**
* 主键
*/
@Id
@JSONField(serializeUsing = ToStringSerializer.class)
@GeneratedValue(generator = "JDBC")
private Long id;
/**
* 名称
*/
private String name;
@DataAutoFill(type = DataOperationType.INSERT,value = DataValue.DATE,pattern = "MM-dd HH:mm")
private String uuid;
/**
* 创建时间
*/
@DataAutoFill(type = DataOperationType.INSERT,value = DataValue.DATE)
private Date createdTime;
/**
* 修改时间
*/
@DataAutoFill(type = DataOperationType.INSERT_UPDATE,value = DataValue.DATE)
private Date updatedTime;
/**
* 创建人
*/
@DataAutoFill(type = DataOperationType.INSERT,value = DataValue.USER_ID)
private Long createdBy;
/**
* 修改人
*/
@DataAutoFill(type = DataOperationType.INSERT_UPDATE,value = DataValue.USER_ID)
private Long updatedBy;
private static final long serialVersionUID = 1L;
}