zoukankan      html  css  js  c++  java
  • 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);
        }
    View Code

    相关日志输出:

    3,修改操作

     日志输出:

     

    二,自动填充处理

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

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

     方式一:数据库级别

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

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

    2,实体类中增加属性 

    方式二:代码级别

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

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

    1,在相关实体类中注解

     属性自动填充策略源码

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

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

  • 相关阅读:
    多个漂亮的按钮样式和图片集合
    纯CSS3实现3D跳动小球
    visual studio 查找/替换对话框
    CSS实现弹出导航菜单
    javascript使浏览器关闭前弹出确认
    使用CSS3制作立体效果的导航菜单
    多个精美的导航样式web2.0源码
    jQuery实现侧边导航栏效果
    jQ函数after、append、appendTo的区别
    ASP.NET使用jQuery AJAX实现MD5加密实例
  • 原文地址:https://www.cnblogs.com/CL-King/p/14622535.html
Copyright © 2011-2022 走看看