MybatisPlus的自动填充功能如何实现长尾词自动生成?

2026-04-02 11:361阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计375个文字,预计阅读时间需要2分钟。

MybatisPlus的自动填充功能如何实现长尾词自动生成?

实现元对象处理器接口com.baomidou.mybatisplus.core.handlers.MetaObjectHandler,使用注解@TableField(fill=FieldFill.INSERT)填充字段。

实现元对象处理器接口com.baomidou.mybatisplus.core.handlers.MetaObjectHandler注解填充字段TableField

实现元对象处理器接口com.baomidou.mybatisplus.core.handlers.MetaObjectHandler 注解填充字段 TableField(fill FieldFill.INSERT_UPDATE) 生成器策略部分也可以配置:

public enum FieldFill {/*** 默认不处理*/DEFAULT,/*** 插入填充字段*/INSERT,/*** 更新填充字段*/UPDATE,/*** 插入和更新填充字段*/INSERT_UPDATE}

实体对象的编写

MybatisPlus的自动填充功能如何实现长尾词自动生成?

package com.zs.entity;DataAllArgsConstructorNoArgsConstructorpublic class User implements Serializable {private static final long serialVersionUID 1L;private Long id;private String name;private Integer age;private String email;private GenderEnum gender;TableField(fill FieldFill.INSERT_UPDATE)private String operator;TableLogicprivate Integer flag;public User(Long id, String name, Integer age, String email, GenderEnum gender) {this.id id;this.name name;this.age age;this.email email;this.gender gender;}}

自定义实现类 MyMetaObjectHandler

package com.zs.handler;Slf4jComponentpublic class MyMetaObjectHandler implements MetaObjectHandler {Overridepublic void insertFill(MetaObject metaObject) {log.info("start insert fill ....");this.strictInsertFill(metaObject, "operator", String.class, "Jetty");}Overridepublic void updateFill(MetaObject metaObject) {log.info("start update fill ....");this.strictUpdateFill(metaObject, "operator", String.class, "Tom");}}

测试类

Testpublic void test() {User user new User(13L, "Guido van Rossum", 25, "Guido van Rossumqq.com", GenderEnum.MALE);boolean res userService.save(user);System.out.println(res);}

注意事项 1、填充原理是直接给entity的属性设置值。 2、MetaObjectHandler提供的默认方法的策略均为:如果属性有值则不覆盖,如果填充值为null则不填充 3、字段必须声明TableField注解,属性fill选择对应策略,该声明告知Mybatis-Plus需要预留注入SQL字段 4、填充处理器MyMetaObjectHandler在 Spring Boot 中需要声明Component或Bean注入 5、update(T t,Wrapper updateWrapper)时t不能为空,否则自动填充失效

本文共计375个文字,预计阅读时间需要2分钟。

MybatisPlus的自动填充功能如何实现长尾词自动生成?

实现元对象处理器接口com.baomidou.mybatisplus.core.handlers.MetaObjectHandler,使用注解@TableField(fill=FieldFill.INSERT)填充字段。

实现元对象处理器接口com.baomidou.mybatisplus.core.handlers.MetaObjectHandler注解填充字段TableField

实现元对象处理器接口com.baomidou.mybatisplus.core.handlers.MetaObjectHandler 注解填充字段 TableField(fill FieldFill.INSERT_UPDATE) 生成器策略部分也可以配置:

public enum FieldFill {/*** 默认不处理*/DEFAULT,/*** 插入填充字段*/INSERT,/*** 更新填充字段*/UPDATE,/*** 插入和更新填充字段*/INSERT_UPDATE}

实体对象的编写

MybatisPlus的自动填充功能如何实现长尾词自动生成?

package com.zs.entity;DataAllArgsConstructorNoArgsConstructorpublic class User implements Serializable {private static final long serialVersionUID 1L;private Long id;private String name;private Integer age;private String email;private GenderEnum gender;TableField(fill FieldFill.INSERT_UPDATE)private String operator;TableLogicprivate Integer flag;public User(Long id, String name, Integer age, String email, GenderEnum gender) {this.id id;this.name name;this.age age;this.email email;this.gender gender;}}

自定义实现类 MyMetaObjectHandler

package com.zs.handler;Slf4jComponentpublic class MyMetaObjectHandler implements MetaObjectHandler {Overridepublic void insertFill(MetaObject metaObject) {log.info("start insert fill ....");this.strictInsertFill(metaObject, "operator", String.class, "Jetty");}Overridepublic void updateFill(MetaObject metaObject) {log.info("start update fill ....");this.strictUpdateFill(metaObject, "operator", String.class, "Tom");}}

测试类

Testpublic void test() {User user new User(13L, "Guido van Rossum", 25, "Guido van Rossumqq.com", GenderEnum.MALE);boolean res userService.save(user);System.out.println(res);}

注意事项 1、填充原理是直接给entity的属性设置值。 2、MetaObjectHandler提供的默认方法的策略均为:如果属性有值则不覆盖,如果填充值为null则不填充 3、字段必须声明TableField注解,属性fill选择对应策略,该声明告知Mybatis-Plus需要预留注入SQL字段 4、填充处理器MyMetaObjectHandler在 Spring Boot 中需要声明Component或Bean注入 5、update(T t,Wrapper updateWrapper)时t不能为空,否则自动填充失效