记录一下使用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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM