ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MybatisPlus:crud测试,自动填充问题

2021-04-06 23:35:56  阅读:210  来源: 互联网

标签:MybatisPlus 填充 数据库 crud private user 默认值 id


前期基本数据准备

数据库表可参考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);
    }
View Code

相关日志输出:

 

 

3,修改操作

 

 日志输出:

 

 

 

二,自动填充处理

比如说在阿里巴巴开发手册中说明:gmt_create,gmt_modified几乎所有的表都要配置上!而且需要自动化!

这就要用到自动填充处理啦,目前常用的两种方式(数据库级别,代码级别)

 方式一:数据库级别

在数据库就设置好相关属性的默认值,和数据

1,在数据库表中新增两个字段,同时设定一个默认值

 

2,实体类中增加属性 

 

 

方式二:代码级别

注意:在业务层去set一些默认值之类的(如:create_time,update_time,del_flag)是很初级的行为,毕竟人是没有机器可靠的

依靠框架(mybaitsPlus)写好的接口实现自动填充

1,在相关实体类中注解

 

 属性自动填充策略源码

 

 2.编写处理器来处理这个注解即可

 

 最后做单元测试,观察数据库数据是否符合

 

标签:MybatisPlus,填充,数据库,crud,private,user,默认值,id
来源: https://www.cnblogs.com/CL-King/p/14622535.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有