数据库配置
提供数据库表公共基类,自动填充列数据操作。
Maven坐标
xml
<dependency>
<groupId>com.ikingtech.platform</groupId>
<artifactId>sdk-data</artifactId>
</dependency>
主要方法说明
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;
}
MybatisPlusConfiguration
是配置类,定义了几个 Bean,包括:
- mybatisPlusInterceptor:MyBatis Plus 拦截器,主要用于分页查询。
- metaObjectHandler:基于MybatisPlusMetaObjectHandler的属性填充器。
- easySqlInjector:基于EasySqlInjector的 SQL 注入器。
AbstractDragHelper
、DragHelper
、DragHelperBuilder
这三个类主要用于处理拖动排序逻辑。
- AbstractDragHelper是一个抽象类,实现了基本的字段和方法;
- DragHelper是一个接口,定义了drag方法;
- DragHelperBuilder是一个构造器类,用于构建具体的拖动帮助类。
InnerDragHelper
、LevelCrossDragHelper
、OneLevelDragHelper
这三个类都继承自AbstractDragHelper,分别对应不同的拖动场景:
- InnerDragHelper:内部拖动
- LevelCrossDragHelper:跨层级拖动。
- OneLevelDragHelper:同一层级内的拖动。