mybatis时间查询使用字符串判空和in查询使用字符串传递参数踩坑

本文分享了在使用MyBatisXML时遇到的两个常见问题:1.时间类型参数的正确判断方式,避免因为空字符串引发的异常;2.如何正确处理IN查询中的数组参数,包括使用@Param注解和避免null值。

mybatis xml踩坑记录

问题1

当传递参数为时间类型时不要使用字符串判空否则就会报以下错误

错误示范
//注意以下时错误写法
<if test="begTime != null  and endTime != null and begTime != '' and endTime != ''">
AND insert_time BETWEEN #{begTime,jdbcType=TIMESTAMP} AND #{endTime,jdbcType=TIMESTAMP}
</if>
Caused by: java.lang.IllegalArgumentException: invalid comparison: cn.hutool.core.date.DateTime and java.lang.String
正确写法
//注意以下时错误写法,不要判断空字符串
<if test="begTime != null  and endTime != null">
AND insert_time BETWEEN #{begTime,jdbcType=TIMESTAMP} AND #{endTime,jdbcType=TIMESTAMP}
</if>
问题2

当使用in查询数据时,不能直接传字符串比如1,2,否则虽不会报错,但查出数据是有问题的

错误示范
//Dao层
public class CuuService(){
public Integer getOne(String ids);
}
//调用方法
public class cuuApplication(){
CuuService 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值