Skip to content

数据库配置

提供数据库表公共基类,自动填充列数据操作。

Maven坐标

xml
<dependency>
	<groupId>com.ikingtech.platform</groupId>
	<artifactId>sdk-data</artifactId>
</dependency>

主要方法说明

  1. MybatisPlusMetaObjectHandler是一个自定义的 MyBatis Plus 属性填充处理器,用于在使用 MyBatis Plus 执行 SQL 操作时自动填充预设的字段。包括insertFill和updateFill方法,分别对应插入和更新操作。

    自动填入的字段有:

java
public void insertFill(MetaObject metaObject) {
    fillValIfNullByName("createBy", Me.id(), metaObject);
    fillValIfNullByName("createName", Me.name(), metaObject);
    fillValIfNullByName("createTime", LocalDateTime.now(), metaObject);
    fillValIfNullByName("updateBy", Me.id(), metaObject);
    fillValIfNullByName("updateName", Me.name(), metaObject);
    fillValIfNullByName("updateTime", LocalDateTime.now(), metaObject);
}

@Override
public void updateFill(MetaObject metaObject) {
    fillValIfNullByName("updateBy", Me.id(), metaObject);
    fillValIfNullByName("updateName", Me.name(), metaObject);
    fillValIfNullByName("updateTime", LocalDateTime.now(), metaObject);
}

注意

填入时,获取当前登陆用户的信息,即Me.xxx()

在实体类中extends BaseEntity就会隐式的为实体数据,增加BaseEntity中的字段。

java
public class BaseEntity implements Serializable {

    private static final long serialVersionUID = -7598384243290245280L;

    @TableId(value = "id")
    private String id;

    @TableField(value = "create_by", fill = FieldFill.INSERT)
    private String createBy;

    @TableField(value = "create_name", fill = FieldFill.INSERT)
    private String createName;

    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    @TableField(value = "update_by", fill = FieldFill.INSERT_UPDATE)
    private String updateBy;

    @TableField(value = "update_name", fill = FieldFill.INSERT_UPDATE)
    private String updateName;

    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
  1. MybatisPlusConfiguration是配置类,定义了几个 Bean,包括:
  • mybatisPlusInterceptor:MyBatis Plus 拦截器,主要用于分页查询。
  • metaObjectHandler:基于MybatisPlusMetaObjectHandler的属性填充器。
  • easySqlInjector:基于EasySqlInjector的 SQL 注入器。
  1. AbstractDragHelperDragHelperDragHelperBuilder 这三个类主要用于处理拖动排序逻辑。
  • AbstractDragHelper是一个抽象类,实现了基本的字段和方法;
  • DragHelper是一个接口,定义了drag方法;
  • DragHelperBuilder是一个构造器类,用于构建具体的拖动帮助类。
  1. InnerDragHelperLevelCrossDragHelperOneLevelDragHelper这三个类都继承自AbstractDragHelper,分别对应不同的拖动场景:
  • InnerDragHelper:内部拖动
  • LevelCrossDragHelper:跨层级拖动。
  • OneLevelDragHelper:同一层级内的拖动。