記錄一下使用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