登录
首页 >  数据库 >  MySQL

MybatisPlus使用自定义Id生成器&数据自动填充

来源:SegmentFault

时间:2023-02-24 21:56:31 162浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《MybatisPlus使用自定义Id生成器&数据自动填充》,聊聊MySQL、Java、springboot,我们一起来看看吧!

使用自定义ID生成器

  1. 实现
    @Component
    public class CustomerIdGenerator implements IdentifierGenerator {
        @Override
        public Number nextId(Object entity) {
            // 填充自己的Id生成器,
            return HolaSms.snowFlake();
        }
    }
    1. 实体类或者配置文件中指定id填充方式
    • 配置文件

    mybatis-plus:
      global-config:
        db-config:
          id-type: assign_id
    • 实体类

        @TableId(type = IdType.ASSIGN_ID)
        private Long id;
    这两种方式任意选择其中一种即可,如果同时配置,会以实体类为准。
    如果你的代码中手动设置了id,会以你手动设置的为准。

    字段填充

    我们创建的表一般会有
    @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());
        }
    }
    1. 在需要填充的字段标注
      @TableField
      注解,并指定填充时机。

        /**
         * 更新人
         */
        @TableField(fill = FieldFill.INSERT_UPDATE)
        private String updateUser;
    
        /**
         * 创建者
         */
        @TableField(fill = FieldFill.INSERT)
        private String createUser;

    到这里,我们也就讲完了《MybatisPlus使用自定义Id生成器&数据自动填充》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于mysql的知识点!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>