300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql id生成器自定义_MybatisPlus使用自定义Id生成器数据自动填充

mysql id生成器自定义_MybatisPlus使用自定义Id生成器数据自动填充

时间:2020-10-04 13:27:49

相关推荐

mysql id生成器自定义_MybatisPlus使用自定义Id生成器数据自动填充

使用自定义ID生成器实现IdentifierGenerator接口@Component

public class CustomerIdGenerator implements IdentifierGenerator {

@Override

public Number nextId(Object entity) {

// 填充自己的Id生成器,

return HolaSms.snowFlake();

}

}实体类或者配置文件中指定id填充方式配置文件mybatis-plus:

global-config:

db-config:

id-type: assign_id实体类@TableId(type = IdType.ASSIGN_ID)

private Long id;这两种方式任意选择其中一种即可,如果同时配置,会以实体类为准。

如果你的代码中手动设置了id,会以你手动设置的为准。

字段填充我们创建的表一般会有create_user,update_user这样的字段,跟实际的业务没有太大关系,这时候,我们可以提前指定字段的填充方式,我们就不用关心这些字段的值的问题了。编写填充方式,实现MetaObjectHandler接口

这个接口提供了两个方法,一个是插入的时候填充,一个是更新的时候填充。

我们调用填充的方法参数分别是:1. 实体对象,我们直接抄下来即可

2. 需要填充的字段名称

3. 需要填充的字段类型

4. 填充的值@Component

public class DataAutoFill implements MetaObjectHandler {

@Override

public void insertFill(MetaObject metaObject) {

this.strictInsertFill(metaObject, "createUser", String.class, HolaSms.currentUser());

this.strictInsertFill(metaObject, "updateUser", String.class, HolaSms.currentUser());

}

@Override

public void updateFill(MetaObject metaObject) {

this.strictInsertFill(metaObject, "updateUser", String.class, HolaSms.currentUser());

}

}在需要填充的字段标注@TableField注解,并指定填充时机。/**

* 更新人

*/

@TableField(fill = FieldFill.INSERT_UPDATE)

private String updateUser;

/**

* 创建者

*/

@TableField(fill = FieldFill.INSERT)

private String createUser;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。