我是靠谱客的博主 快乐小海豚,这篇文章主要介绍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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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

复制代码
1
2
3
4
5
@Bean public MyMetaObjectHandler myMetaObjectHandler() { return new MyMetaObjectHandler(); }

1.4 测试

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

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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:自动填充功能内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部