zoukankan      html  css  js  c++  java
  • 记录一下使用mybatis-plus 根据时间条件 查不到数据问题

    问题描述:

    ​ 准备写一个demo来测试 查询一个时间段的记录数,传入一个时间以后不能正确的查到记录数,最离谱的是用 插件打印出执行的SQL语句放到数据库中是可以跑出数据来的,在代码中跑不出数据。

    ​ 解决方法:

    在通过实体类传输时间之后使用SimpleDateFormat 进行格式化一下时间,在封装到wrapper查询结果正常。

    实体类代码

    @Data
    @EqualsAndHashCode(callSuper = false)
    @Accessors(chain = true)
    @ApiModel(value="User对象", description="用户表")
    @ToString
    public class User implements Serializable {
    
        private static final long serialVersionUID = 1L;
    
        @TableId(value = "id", type = IdType.AUTO)
    
        private Integer id;
    
        private String name;
    
        private Integer age;
    
        private String sex;
    
        private String address;
    
        private String phone;
    
        private String userId;
    
    
        @TableField(fill = FieldFill.INSERT)
        @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
        private Date createTime;
    
        @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
        @TableField(fill = FieldFill.INSERT_UPDATE)
        private Date updateTime;
    
    }
    

    业务层代码

     @Override
        public List<User> gets(User user) {
    
            Date time = user.getCreateTime();
    
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
            String s1 = sdf.format(time);
    
            Date time1 = user.getUpdateTime();
    
            String s2 = sdf.format(time1);
    
            QueryWrapper <User> wrapper=new QueryWrapper<>();
    
            wrapper.gt("create_time",s1);
    
            wrapper.lt("update_time",s2);
    
            List<User> list = baseMapper.selectList(wrapper);
    
            log.info(String.valueOf(list));
    
            return list;
        }
    }
    

    控制层代码

        //根据时间段查数据
        @PostMapping("getList")
        public ResultData getList(@RequestBody User user){
    
            List<User> gets = userService.gets(user);
    
            return ResultData.ok().data("list",gets);
        }
    
    
    

    前端传递的参数

    {
      "createTime": "2021-04-22 09:12:01",
      "updateTime": "2021-04-22 09:55:37"
    }
    

    image-20210423150812021

    努力学习java的Cherish
  • 相关阅读:
    Android和iOS的APP测试区别
    APP强制更新、非强制更新的测试要点(转)
    (转)mongodb与mysql区别
    接口测试注意事项参考
    测试Checklist参考
    ADB:运行adb shell uiautomator dump并查看dump文件,由于权限问题报错的解决办法
    运行adb devices显示List of devices attached,无法获取模拟器设备信息的解决办法
    Python实现进度条
    移动APP自动化测试框架对比(转)
    Cortex-M0总结
  • 原文地址:https://www.cnblogs.com/cherish-code/p/14693938.html
Copyright © 2011-2022 走看看