业务场景
查询数据的更改时间在起止时间段内的数据
数据库中的time字段是datetime类型,实体类中的time属性是Date类型
mybatis中的sql语句:
<if test="endTime != null and endTime != ''">
AND a.time <=#{endTime}
</if>
<if test="startTime != null and startTime != ''">
AND a.time >=#{startTime}
</if>
遇到的问题
-
运行时系统报 invalid comparison: java.util.Date and java.lang.String问题
-
在mybatis中小于号“<“会报错
解决方法
- 原因:date对象不可以作"datetime != ‘ ’ "判断,只需要判断是否为null就好了
2.小于号报错,可以有两种解决方法
替换符:
原符号 | 替换符(字符之间无空格) |
---|---|
> | & gt;( |
>= | & gt;= |
< | & lt; |
<= | & lt;= |
//第一种写法
AND a.time <![CDATA[<=]]> #{endTime}
//第二种写法
<![CDATA[AND a.time <=#{endTime}]]>