更新操作
比较简单,实现原理是动态sql
| @Test |
| void updateTest(){ |
| user user = new user(); |
| user.setId(1524653412236517378L); |
| user.setAge(200); |
| user.setEmail("2034281742@qq.com"); |
| userMapper.updateById(user); |
| } |
自动填充
这个主要用于更新时间,和创建时间等,不需要认为设置的字段
- 使用@TableField注解,提示plus哪写字段需要自动填充
| public class user { |
| |
| |
| @TableId(type = IdType.ID_WORKER) |
| private Long id; |
| private String name; |
| private Integer age; |
| private String email; |
| |
| @TableField(fill = FieldFill.INSERT) |
| private Date createTime; |
| |
| @TableField(fill = FieldFill.INSERT_UPDATE) |
| private Date updateTime; |
| } |
- 还没完,我们只是告诉了plus哪些需要填充,但填充的数据从哪里来呢?
这里我们可以实现MetaObjectHandler接口,来填充数据
| package top.luoking.Handler; |
| |
| import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; |
| import lombok.extern.slf4j.Slf4j; |
| import org.apache.ibatis.reflection.MetaObject; |
| import org.springframework.stereotype.Component; |
| |
| import java.util.Date; |
| |
| @Slf4j |
| @Component |
| public class MyMetaObjectHandler implements MetaObjectHandler { |
| |
| |
| @Override |
| public void insertFill(MetaObject metaObject) { |
| log.info("start insert fill ...."); |
| this.setFieldValByName("createTime",new Date(),metaObject); |
| this.setFieldValByName("updateTime",new Date(),metaObject); |
| |
| } |
| |
| @Override |
| public void updateFill(MetaObject metaObject) { |
| log.info("start update fill ...."); |
| this.setFieldValByName("updateTime",new Date(),metaObject); |
| |
| } |
| } |
- 测试
| @Test |
| void insertTest(){ |
| user user = new user(); |
| user.setAge(21); |
| user.setEmail("2034281742@qq.com"); |
| user.setName("小落"); |
| userMapper.insert(user); |
| } |
| @Test |
| void updateTest(){ |
| user user = new user(); |
| user.setId(1524657437254115330L); |
| user.setAge(200); |
| user.setEmail("2034281742@qq.com"); |
| userMapper.updateById(user); |
| } |
insertTest

updateTest

达到了我们理想中的目的,在之后我们就可以利用自动填充来处理时间问题,我个人认为,蛮好用的。
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决