SpringBoot与MybatisPlus整合之公用字段填充(十一)
时间:2019-10-31
本文章向大家介绍SpringBoot与MybatisPlus整合之公用字段填充(十一),主要包括SpringBoot与MybatisPlus整合之公用字段填充(十一)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在实际开发中,适合用于记录创建人修改人
-
pom.xml
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/p6spy/p6spy --> <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3.8.0</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.49</version> <scope>test</scope> </dependency> <!-- for testing --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
-
application.yml
spring: datasource: driver-class-name: com.p6spy.engine.spy.P6SpyDriver url: jdbc:p6spy:h2:tcp://192.168.180.115:19200/~/mem/test username: root password: test
-
实体类
@Data @TableName(value = "user") @NoArgsConstructor @AllArgsConstructor public class User { private Long id; private String name; private Integer age; private String email; @TableField(fill = FieldFill.INSERT_UPDATE) private String operator; } @Mapper public interface UserMapper extends BaseMapper<User> { }
-
@Component public class MyMetaObjectHandler implements MetaObjectHandler { private static final Logger LOGGER = LoggerFactory.getLogger(MyMetaObjectHandler.class); @Override public void insertFill(MetaObject metaObject) { LOGGER.info("start insert fill ...."); //避免使用metaObject.setValue() this.setFieldValByName("operator", "Jerry", metaObject); } @Override public void updateFill(MetaObject metaObject) { LOGGER.info("start update fill ...."); this.setFieldValByName("operator", "Tom", metaObject); } }
-
测试类
@SpringBootTest class MetainfoApplicationTests { private static final Logger LOGGER = LoggerFactory.getLogger(MetainfoApplicationTests.class); @Autowired(required = false) private UserMapper userMapper; @Test public void test(){ User user = new User(null,"Tom",1,"tom@qq.com",null); userMapper.insert(user); LOGGER.info("query user:{}",userMapper.selectById(user.getId())); User beforeUser = userMapper.selectById(1L); LOGGER.info("before user:{}",beforeUser); beforeUser.setAge(12); userMapper.updateById(beforeUser); LOGGER.info("query user:{}",userMapper.selectById(1L)); } }
- 测试结果
2019-10-31 13:22:13.328 INFO 14172 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. Consume Time:0 ms 2019-10-31 13:22:13 Execute SQL:INSERT INTO user ( id, name, operator, email, age ) VALUES ( 1189774553572806657, 'Tom', 'Jerry', 'tom@qq.com', 1 ) Consume Time:6 ms 2019-10-31 13:22:13 Execute SQL:SELECT id,name,operator,email,age FROM user WHERE id=1189774553572806657 2019-10-31 13:22:13.394 INFO 14172 --- [ main] c.mp.metainfo.MetainfoApplicationTests : query user:User(id=1189774553572806657, name=Tom, age=1, email=tom@qq.com, operator=Jerry) 2019-10-31 13:22:13.397 INFO 14172 --- [ main] c.mp.metainfo.MetainfoApplicationTests : before user:User(id=1, name=Jone, age=18, email=test1@baomidou.com, operator=test) Consume Time:0 ms 2019-10-31 13:22:13 Execute SQL:SELECT id,name,operator,email,age FROM user WHERE id=1 2019-10-31 13:22:13.404 INFO 14172 --- [ main] c.m.m.handler.MyMetaObjectHandler : start update fill .... Consume Time:0 ms 2019-10-31 13:22:13 Execute SQL:UPDATE user SET name='Jone', operator='Tom', email='test1@baomidou.com', age=12 WHERE id=1 2019-10-31 13:22:13.417 INFO 14172 --- [ main] c.mp.metainfo.MetainfoApplicationTests : query user:User(id=1, name=Jone, age=12, email=test1@baomidou.com, operator=Tom) Consume Time:1 ms 2019-10-31 13:22:13 Execute SQL:SELECT id,name,operator,email,age FROM user WHERE id=1
原文地址:https://www.cnblogs.com/dalianpai/p/11770689.html
- PostgreSQL主备环境搭建
- Tomcat集群session复制与Oracle的坑。。
- 用Keras+TensorFlow,实现ImageNet数据集日常对象的识别
- JavaWeb项目架构之Elasticsearch日志处理系统
- 分布式服务防雪崩熔断器,Hystrix理论+实战。
- JavaWeb项目架构之Kafka分布式日志队列
- 如何让Git记住用户名和密码
- 金融系统中正确的金额计算及存储方式
- 如何利用深度学习写诗歌(使用Python进行文本生成)
- 注意:字符串substring方法在jkd6,7,8中的差异。
- JavaWeb项目架构之NFS文件服务器
- 轻松几步搞定SSH连接Git配置
- 免费使用谷歌GPU资源训练自己的深度模型
- Git安装及配置5分钟快速教程
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Vue 父组件如何监听子组件的生命周期
- Django3+websocket+paramiko实现web页面实时输出
- 【5分钟玩转Lighthouse】开车也能跑程序
- LeetCode74|有序矩阵中第K小的元素
- LeetCode73|根据字符出现频率排序
- LeetCode72|前K个高频元素
- LeetCode71|数组中第K个最大元素
- LeetCode70|最小K个数
- LeetCode69|消失的数字
- LeetCode68|和为s的两个数字
- LeetCode78|存在重复元素
- LeetCode77|排序链表
- LeetCode76|两颗二叉搜索树中的所有元素
- LeetCode75|二叉搜索树的第k大节点
- LeetCode86|只出现一次的数字II