问题:Mybatis Plus传给MySQL的LocalDateTime对象总是含有T,导致查询匹配不到
==> Preparing: SELECT tid,acc_id,amount,remark,ttime FROM acc_trans WHERE tid = ? AND ttime = ?
==> Parameters: 2(Integer), 2019-07-16T10:41(LocalDateTime)
分析:查看String源码,发现toString会拼接T,猜测Mybatis Plus调用LocalDateTime的toString方法,以字符串格式传给MySQL
public String toString() { return date.toString() + 'T' + time.toString(); }
解决办法:
1、Java中继续使用LocalDateTime类型,方便日期运算,但作为Mybatis Plus的条件构造器参数时,要自行转换成String
2、Java中使用String存储日期时间
==> Preparing: SELECT tid,acc_id,amount,remark,ttime FROM acc_trans WHERE tid = ? AND ttime = ?
==> Parameters: 2(Integer), 2019-07-16 10:41:00(String)