zoukankan      html  css  js  c++  java
  • MybatisPlus学习笔记10:公共字段自动填充

    我们知道,当我们进行插入或者更新操作时,没有设置值的属性,那么在数据表中要么是为null,要么是保留原来的值。
    有的时候我们我们没有赋值但是却不想让其为空,
    比如name属性,我们插入时会默认赋上“林志玲”,更新时会默认赋值上“朱茵”,那么就可以用公共字段自动填充。

    1、使用@TableField注解标记填充字段

    @TableField(fill = FieldFill.INSERT_UPDATE)//插入和更新时填充
     private String name;
    

    2、编写自己的公共字段填充处理类

    该类继承了MetaObjectHandler类,重写了insertFill和updateFill方法,在这两个方法获取需要填充的字段以及默认填充的值。

    public class MyMetaObjectHandler extends MetaObjectHandler {
        @Override
        public void insertFill(MetaObject metaObject) {
            Object fieldValue = getFieldValByName("name",metaObject); //获取需要填充的字段
            if(fieldValue == null){   //如果该字段没有设置值
                setFieldValByName("name","林志玲",metaObject); //那就将其设置为"林志玲"
            }
        }
    
        @Override
        public void updateFill(MetaObject metaObject) {
            Object fieldValue = getFieldValByName("name",metaObject);//获取需要填充的字段
            if(fieldValue == null){ //如果该字段没有设置值
                setFieldValByName("name","朱茵",metaObject);  //那就将其设置为"朱茵"
            }
        }
    }
    

    3、在spring-dao.xml中配置

    和配置逻辑删除一样,都是先将自定义的类注册成bean,再在全局策略配置中引用这个bean即可。

    <!-- 公共字段填充处理器 -->
    <bean class="com.zhu.mybatisplus.handler.MyMetaObjectHandler" id="myMetaObjectHandler"/>
    
    <!-- 5、mybatisplus的全局策略配置 -->
        <bean id="globalConfiguration" class="com.baomidou.mybatisplus.entity.GlobalConfiguration">
            <!-- 此处省略其他配置 -->
            <!-- 注入公共字段填充处理器 -->
            <property name="metaObjectHandler" ref="myMetaObjectHandler"/>
        </bean>
    

    4、测试

    @Test
    public void testHandlerInsert() {
            User user = new User();
            user.setGender(1);
            user.setAge(22);
            user.setLogicFlag(1);
            userDao.insert(user);
    }
    

    可以看到,虽然我们并没有给name赋值,但是已经自动把“林志玲”传进去了。更新时也一样有效,此处就不将测试代码贴出来了。

    https://www.jianshu.com/p/a4d5d310daf8

  • 相关阅读:
    Android 禁止软键盘自动弹出
    Android之Adapter用法总结
    如何成为android高手
    最强大的文案策略
    外贸电商的ERP有很多
    ERP行业销售如何挖掘潜在客户?
    新制造
    C#实现字符串相似度算法
    cmd
    对于大型公司项目平台选择j2ee的几层认识
  • 原文地址:https://www.cnblogs.com/xidianzxm/p/12709146.html
Copyright © 2011-2022 走看看