1、导入依赖
<!-- mybatis-plus 增强CRUD -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!-- lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
2、实体类应用
@Data
@TableName(value = "对应的表名")
public class ABC {
@TabileId // 表示该字段是主键字段
private Long id;
@TableField(value = "表中对应的字段")
private String username;
@TableField(value = "create_by", fill = FieldFill.INSERT)
private String createBy;
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
@TableField(value = "update_by", fill = FieldFill.UPDATE)
private String updateBy;
@TableField(value = "update_time", fill = FieldFill.UPDATE)
private Date updateTime;
@TableField(exist = false) // mybatis-plus 过滤掉该字段
private String searchValue;
}
/*
注:
createBy、createTime、updateBy、updateTime字段上的 fill = FieldFill.xxx表示自动填充内容,需要配置类才可以使用,具体看第3段
*/
3、配置自动填充
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.titan.common.utils.SecurityUtils;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* MyBatis-Plus 自动填充配置
*/
@Component
public class MyBatisPlusHandler implements MetaObjectHandler {
/**
* 新增时的自动填充
* @param metaObject
*/
@Override
public void insertFill(MetaObject metaObject) {
// 自动填充创建人
this.setFieldValByName("createBy", SecurityUtils.getUsername(), metaObject);
// 自动填充创建时间
this.setFieldValByName("createTime", new Date(), metaObject);
// 自动填充是否删除状态 默认:不删除
this.setFieldValByName("isDel", "0", metaObject);
}
/**
* 修改时的自动填充
* @param metaObject
*/
@Override
public void updateFill(MetaObject metaObject) {
// 自动填充修改人
this.setFieldValByName("updateBy", SecurityUtils.getUsername(), metaObject);
// 自动填充修改时间
this.setFieldValByName("updateTime", new Date(), metaObject);
}
}
4、自动生成的ID到前端页面后精度损失
@JsonFormat(shape = JsonFormate.Shape.STRING)
private Long id;
加上这个注解可以解决