Mybatis-Plus:自动填充功能 @TableField
Posted CodeJiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis-Plus:自动填充功能 @TableField相关的知识,希望对你有一定的参考价值。
1. 自动填充功能
有些时候我们可能会有这样的需求,插入或者更新数据时,希望有些字段可以自动填充数据,比如password
、version
等。在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:自动填充功能 @TableField的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis-Plus:自动填充功能 @TableField