| <dependencies> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-test</artifactId> |
| <version>2.6.1</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.springframework.boot</groupId> |
| <artifactId>spring-boot-starter-webflux</artifactId> |
| <version>2.6.1</version> |
| </dependency> |
| <dependency> |
| <groupId>com.baomidou</groupId> |
| <artifactId>mybatis-plus-boot-starter</artifactId> |
| <version>3.4.0</version> |
| </dependency> |
| <dependency> |
| <groupId>mysql</groupId> |
| <artifactId>mysql-connector-java</artifactId> |
| <version>8.0.27</version> |
| </dependency> |
| <dependency> |
| <groupId>org.projectlombok</groupId> |
| <artifactId>lombok</artifactId> |
| <version>1.18.18</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.assertj</groupId> |
| <artifactId>assertj-core</artifactId> |
| <version>3.21.0</version> |
| <scope>compile</scope> |
| </dependency> |
| </dependencies> |
| @Slf4j |
| @Component |
| public class MyMetaObjectHandler implements MetaObjectHandler { |
| |
| |
| |
| |
| |
| @Override |
| public void insertFill(MetaObject metaObject) { |
| log.info("start insert fill ...."); |
| this.strictInsertFill(metaObject, "operator", String.class, "Jetty"); |
| } |
| |
| |
| |
| |
| |
| @Override |
| public void updateFill(MetaObject metaObject) { |
| log.info("start update fill ...."); |
| this.strictUpdateFill(metaObject, "operator", String.class, "Tom"); |
| } |
| } |
| @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; |
| } |
| @Slf4j |
| @SpringBootTest |
| public class AutoFillTest { |
| |
| @Resource |
| private UserMapper userMapper; |
| |
| @Test |
| public void test() { |
| |
| |
| |
| |
| |
| User user = new User(null, "Tom", 1, "tom@qq.com", null); |
| userMapper.insert(user); |
| log.info("query user:{}", userMapper.selectById(user.getId())); |
| |
| |
| |
| |
| |
| |
| User beforeUser = userMapper.selectById(1L); |
| log.info("before user:{}", beforeUser); |
| |
| |
| |
| |
| |
| beforeUser.setAge(12); |
| userMapper.updateById(beforeUser); |
| log.info("query user:{}", userMapper.selectById(1L)); |
| } |
| } |
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术