我是靠谱客的博主 快乐小海豚,最近开发中收集的这篇文章主要介绍Mybatis-Plus:自动填充功能 @TableField1. 自动填充功能,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

本节案例承接上节案例

文章目录

  • 1. 自动填充功能
    • 1.1 添加@TableField注解
    • 1.2 编写MyMetaObjectHandler
    • 1.3 把MyMetaObjectHandler放入SpringIOC容器
    • 1.4 测试

1. 自动填充功能

有些时候我们可能会有这样的需求,插入或者更新数据时,希望有些字段可以自动填充数据,比如passwordversion等。在Mybatis-Plus中提供了这样的功能,可以实现自动填充。


1.1 添加@TableField注解

password添加自动填充功能,在新增数据时有效。
在这里插入图片描述
FieldFill提供了多种模式选择:
在这里插入图片描述


1.2 编写MyMetaObjectHandler

在这里插入图片描述
MyMetaObjectHandler.java

package com.tian.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

public class MyMetaObjectHandler implements MetaObjectHandler {

    /**
     * 插入数据时填充
     *
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        // 先获取到password的值,再进行判断,如果为空,就进行填充,如果不为空,就不做处理
        Object password = getFieldValByName("password", metaObject);
        if (null == password) {
            //字段为空,可以进行填充
            setFieldValByName("password", "888888", metaObject);
        }
    }

    /**
     * 更新数据时填充
     *
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
    }
}

1.3 把MyMetaObjectHandler放入SpringIOC容器

在这里插入图片描述

MybatisPlusConfig.java

    @Bean
    public MyMetaObjectHandler myMetaObjectHandler() {
        return new MyMetaObjectHandler();
    }

1.4 测试

在这里插入图片描述
SpringbootMybatisplusApplicationTests.java

package com.tian.springbootmybatisplus;

import com.tian.mapper.UserMapper;
import com.tian.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class SpringbootMybatisplusApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testInsert() {
        User user = new User();
        user.setName("关羽");
        user.setUserName("guanyu");
        user.setAge(30);
        user.setEmail("guanyu@itast.cn");
        user.setVersion(1);
        
        int result = this.userMapper.insert(user);
        System.out.println("result = " + result);
    }
}

运行结果:

生成的sql为:select * from tb_user
在这里插入图片描述
在这里插入图片描述



最后

以上就是快乐小海豚为你收集整理的Mybatis-Plus:自动填充功能 @TableField1. 自动填充功能的全部内容,希望文章能够帮你解决Mybatis-Plus:自动填充功能 @TableField1. 自动填充功能所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部