Skip to content

Mybatis-Plus支持

Mybatis-Plus是Mybatis的增强插件,可以简化Mybatis的开发。平台对Mybatis-Plus的使用,提供了BaseEntity实体类基类。

Maven坐标

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

字段说明

字段名类型说明
idString主键。
使用Mybatis-Plus的@TableId注解标注。
createTimeLocalDateTime创建时间。
使用Mybatis-Plus的@TableField注解标注。
新增数据时自动填充。
createByString创建人用户编号。
使用Mybatis-Plus的@TableField注解标注。
新增数据时自动填充。
createNameString创建人姓名。
使用Mybatis-Plus的@TableField注解标注。
新增数据时自动填充。
updateTimeLocalDateTime更新时间。
使用Mybatis-Plus的@TableField注解标注。
新增/更新数据时自动填充。
updateByString更新人用户编号。
使用Mybatis-Plus的@TableField注解标注。
新增/更新数据时自动填充。
udpateNameString更新人姓名。
使用Mybatis-Plus的@TableField注解标注。
新增/更新数据时自动填充。

Mybatis-Plus分页配置

java

@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();

    // 分页支持
    PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
    paginationInnerInterceptor.setMaxLimit(1000L);
    interceptor.addInnerInterceptor(paginationInnerInterceptor);
    return interceptor;
}

Mybatis-Plus自动填充配置

java

@Override
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);
}

private static void fillValIfNullByName(String fieldName, Object fieldVal, MetaObject metaObject) {
    // 如果填充值为空
    if (fieldVal == null) {
        return;
    }
    if (metaObject.hasSetter(fieldName)) {
        metaObject.setValue(fieldName, fieldVal);
    }
}