概述
本节案例承接上节案例
文章目录
- 1. 自动填充功能
- 1.1 添加@TableField注解
- 1.2 编写MyMetaObjectHandler
- 1.3 把MyMetaObjectHandler放入SpringIOC容器
- 1.4 测试
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:自动填充功能 @TableField1. 自动填充功能的全部内容,希望文章能够帮你解决Mybatis-Plus:自动填充功能 @TableField1. 自动填充功能所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复