MyBatis-plus自动填充功能
1.什么是mp的自动填充?这个功能是做什么的呢?
有的时候,我们可能有这样子的需求,在插入(insert)或者更新数据(update)的时候可以自动填充数据,比如密码,version等。在mp中为我们提供了这种功能,非常的方便!
2.下面用一个例子来学习这个功能
2.1添加注解@TableField(),这个注解里面的fill提供了填充的功能
@TableField(fill = FieldFill.INSERT) //插入时进行填充
private String password;
FirledFill提供了以下几种模式,根据情况可以自己进行选择
public enum FieldFill {
DEFAULT, //默认不进行处理
INSERT, //插入的时候填充字段
UPDATE, //更新的时候填充字段
INSERT_UPDATE; //插入和更新的时候填充字段
private FieldFill() { //构造方法
}
}
2.2编写MyMetaObjectorHandler,实现源对象字段填充控制器抽象类,根据需求实不同的方法,这里是实现一个插入填充的方法
public class MyMetaObjectHandler implements MetaObjectHandler {
//插入填充
@Override
public void insertFill(MetaObject metaObject) {
Object password = getFieldValByName("password", metaObject);
if (ObjectUtils.isNull(password)) {
setFieldValByName("password", "88888888", metaObject);
}
}
//更新填充
@Override
public void updateFill(MetaObject metaObject) {
}
}
2.3将自定义的MyObjectHandler进行bean注入MybatisPlusConfig中
@Configuration
public class MybatisPlusConfig {
@Bean //插入填充
public MyMetaObjectHandler myMetaObjectHandler(){
return new MyMetaObjectHandler();
}
}
3.测试
@Test
public void test() {
User user = new User();
user.setAge(29);
user.setEmail("test@163.com");
user.setUserName("guanyu");
user.setName("关羽");
user.setAddress("上海");
// user.setPassword("123456"); //将密码进行注释,如果插入填充生效的话,数据库默认就填充了上面的88888888为password的值
int result = userMapper.insert(user);
System.out.println("result=" + result);
System.out.println(user.getId());
}
4.结果
综上所示,自动填充成功。
MyBatis-plus自动填充功能的更多相关文章
- javascript 自动填充功能
javascript 自动填充功能 javascript: (function(){ $("#zipcode").val("zip");$("#pho ...
- MP(MyBatis-Plus)的自动填充功能
什么是自动填充 有些表中会有更新时间.创建时间.更新人或者创建人这些字段. 每次对数据进行新增.删除.修改时都需要对这些字段进行设置.传统的做法是在进行这些操作前,对Entity的字段进行set设置, ...
- 基于JQuery实现的文本框自动填充功能
1. 实现的方法 /* * js实现的文本框的自动完成功能 */ function doAutoComplete(textid,dataid,url){ $("#" + texti ...
- MP的自动填充功能
用来进行自动填充时间. 使用注解@TableTield(fill=FieldFill.insert)插入时进行性填充 使用注解@TableTield(fill=FieldFill.Update)更新时 ...
- 网页禁用表单的自动完成功能禁用密码自动填充autocomplete
网页中表单的自动完成功能,有时候很方便,但是有时候并不想让浏览器记忆表单,比如禁用密码域自动填充功能, 网页禁用表单的自动完成功能是由input元素的autocomplete属性控制,关闭表单的自动完 ...
- 如何自动填充SQL语句中的公共字段
1. 前言 我们在设计数据库的时候一定会带上新增.更新的时间.操作者等审计信息. 之所以带这些信息是因为假如有一天公司的数据库被人为删了,尽管可能有数据库备份可以恢复数据.但是我们仍然需要追踪到这个事 ...
- 去掉chrome记住密码后自动填充表单的黄色背景
chrome表单自动填充后,input文本框的背景会变成黄色的,通过审查元素可以看到这是由于chrome会默认给自动填充的input表单加上input:-webkit-autofill私有属性,然后对 ...
- SpringBoot-Mybatis_Plus学习记录之公共字段自动填充
一.应用场景 平时在建对象表的时候都会有最后修改时间,最后修改人这两个字段,对于这些大部分表都有的字段,每次在新增和修改的时候都要考虑到这几个字段有没有传进去,很麻烦.mybatisPlus有一个很好 ...
- iOS - WWDC18 iOS 自动生成强密码和自动填充验证码/密码
本文将介绍WWDC18 Automatic Strong Passwords and Security Code Autofill和WWDC17 Introducing Password AutoFi ...
- Java——利用反射机制将表单数据自动填充到JavaBean中
以一个案例介绍反射机制的一种常见的使用场景,以及具体实现. 1.本文案例 在编写Java Web应用程序时,使用表单提交数据是一个必不可少的环节,后台对于前台使用表单提交的数据需要能够从请求中解析,并 ...
随机推荐
- 利用 kubeadm 创建 kubernetes (k8s) 的高可用集群
引言: kubeadm提供了两种不同的高可用方案. 堆叠方案:etcd服务和控制平面被部署在同样的节点中,对基础设施的要求较低,对故障的应对能力也较低 堆叠方案 最小三个Master(也称工作平面), ...
- 二进制安装Kubernetes(k8s) v1.23.5
Github:https://github.com/cby-chen/Kubernetes/releases 前提说明:公主号不支持富文本,建议在Github查看. 1.23.3 和 1.23.4 和 ...
- pychearm日常用法
一 常用快捷键 编辑类:Ctrl + D 复制选定的区域或行Ctrl + Y 删除选定的行Ctrl + Alt + L 代码格式化Ctrl + Al ...
- pysimplegui之运行多个窗口
运行多个窗口 这就是 PySimpleGUI 继续简单的地方,但问题空间刚刚进入"复杂"领域. 如果您希望在事件循环中运行多个窗口,那么有两种方法可以做到这一点. 当第二个窗口可见 ...
- socket搭建web服务端
import socket from threading import Thread import time def html(conn): time_tag = str(time.time()) p ...
- 轻量级Web框架Flask(二)
Flask-SQLAlchemy MySQL是免费开源软件,大家可以自行搜索其官网(https://www.MySQL.com/downloads/) 测试MySQL是否安装成功 在所有程序中,找到M ...
- PyTorch基础(Numpy & Tensor)
Numpy与Tensor是PyTorch的重要内容 Numpy的使用 Numpy是Python中科学计算的一个基础包,提供了一个多维度的数组对象,数组是由numpy.ndarray类来实现的,是Num ...
- Karmada v1.5发布:多调度组助力成本优化
摘要:在最新发布的1.5版本中,Karmada 提供了多调度组的能力,利用该能力,用户可以实现将业务优先调度到成本更低的集群,或者在主集群故障时,优先迁移业务到指定的备份集群. 本文分享自华为云社区& ...
- 1778D Flexible String Revisit
1778D Flexible String Revisit 目录 1778D Flexible String Revisit 题目大意: 做法: dp 注意 code 题目大意: 给你两个长度均为\( ...
- Email发送邮件使用ical4j将时间同步日历中
1.Maven依赖 <!--邮件--> <dependency> <groupId>org.springframework.boot</groupId> ...