1、自动填充表的创建人、创建时间、修改人、修改时间
实体类
// 创建时间 意思是新建的时候插入
@TableField(fill = FieldFill.INSERT)
private Date d_ctrl_time;
// 创建人 意思是新建的时候插入
@TableField(fill = FieldFill.INSERT)
private String c_ctrl_code;
// 修改时间 意思是新建和修改的时候插入
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date d_uptr_time;
// 修改人 意思是新建和修改的时候插入
@TableField(fill = FieldFill.INSERT_UPDATE)
private String c_uptr_code;
配置类
@Slf4j
@Component
public class MyMetaObjectHandle implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
log.info("进入创建");
this.setFieldValByName("d_ctrl_time",new Date(),metaObject);
this.setFieldValByName("c_ctrl_code","yjx",metaObject);
this.setFieldValByName("d_uptr_time",new Date(),metaObject);
this.setFieldValByName("c_uptr_code","yjx",metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
log.info("进入修改");
this.setFieldValByName("d_uptr_time",new Date(),metaObject);
this.setFieldValByName("c_uptr_code","yjx",metaObject);
}
}
2、实体类注解的使用
package com.mybatisplus.entity;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author
* @since 2022-08-08
*/
@Data
@AllArgsConstructor //有参构造
@NoArgsConstructor // 无参构造
@TableName(value = "tb_user") // 表名
public class User {
// 主键 用户ID
@TableId(value = "c_pk_id") // 主键
private String c_pk_id;
// 用户名称
@TableField(value = "c_username") // 表中的其他字段
private String c_username;
// 用户编码
@TableField(value = "c_account")
private String c_account;
// 密码
@TableField(value = "c_password")
private String c_password;
// 状态
@TableField(value = "c_state")
private String c_state;
// 角色(1:管理员 2:舍管 3:教职工 4:学生)
@TableField(value = "c_role")
private String c_role;
// 是否管理员
@TableField(value = "c_is_admin")
private String c_is_admin;
// 创建时间
@TableField(fill = FieldFill.INSERT) //固定字段,用于管理表
private Date d_ctrl_time;
// 创建人
@TableField(fill = FieldFill.INSERT) //固定字段,用于管理表
private String c_ctrl_code;
// 修改时间
@TableField(fill = FieldFill.INSERT_UPDATE) //固定字段,用于管理表
private Date d_uptr_time;
// 修改人
@TableField(fill = FieldFill.INSERT_UPDATE) //固定字段,用于管理表
private String c_uptr_code;
}
因为不是使用驼峰命名的表实体,所以得配置关闭驼峰
#关闭驼峰命名
mybatis-plus:
configuration:
map-underscore-to-camel-case: false
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl