MybatisPlus:crud测试,自动填充问题
前期基本数据准备
数据库表可参考mybatisPlus官网快速开始的表(简单测试一下)
POJO
@Data @AllArgsConstructor @NoArgsConstructor public class User { //对应数据库中的主键(uuid,自增id,雪花算法,redis,zookeeper) //默认:属性ID_WORKER(全局唯一id) @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; private String email; }
主键策略问题,@TableId(type = IdType.AUTO)
注意:默认的全局唯一id是基于雪花算法实现的
Mapper
一,利用Mybatisplus进行crud
1,查询测试
相关日志输出:
2,插入操作
@Test void test2(){ User user = new User(); user.setName("king"); user.setAge(17); user.setEmail("3333@qq.com"); userMapper.insert(user); List<User> userList = userMapper.selectList(null); userList.forEach(System.out::println); }
相关日志输出:
3,修改操作
日志输出:
二,自动填充处理
比如说在阿里巴巴开发手册中说明:gmt_create,gmt_modified几乎所有的表都要配置上!而且需要自动化!
这就要用到自动填充处理啦,目前常用的两种方式(数据库级别,代码级别)
方式一:数据库级别
在数据库就设置好相关属性的默认值,和数据
1,在数据库表中新增两个字段,同时设定一个默认值
2,实体类中增加属性
方式二:代码级别
注意:在业务层去set一些默认值之类的(如:create_time,update_time,del_flag)是很初级的行为,毕竟人是没有机器可靠的
依靠框架(mybaitsPlus)写好的接口实现自动填充
1,在相关实体类中注解
属性自动填充策略源码
2.编写处理器来处理这个注解即可
最后做单元测试,观察数据库数据是否符合