首先是踩了坑花了2小时的教训才学聪明了,最好的解决方案是 将对象字段和数据库字段都设置 Date类型,这样在mybatis中可以直接比较。
当时由于idea上xml的检测机制问题,字段的重复比对需要添加注释,不然报SQl dialect no configured的error,当然你也可以把IDEA设置中File -> setting 搜索inspections,再搜索sql,找到SQL dialect detection去掉勾就行。建议加注释,规范自己。
<select id="getRecordByDate" resultType="com.suntak.eightdisciplines.entity.Record">
SELECT t.*
FROM modify_complaint_history t
WHERE 1=1
<![CDATA[AND t.create_date >= #{arg0,jdbcType=DATE}]]>
<![CDATA[AND t.create_date <= #{arg1,jdbcType=DATE}]]>
</select>
关于时间的保存基本分为4种
- 对象字段是 String类型,数据库字段为 Date类型
- 对象字段是 Date类型,数据库字段为 Date类型
- 对象字段是 String类型,数据库字段为 varchar2类型
- 对象字段是 Date类型,数据库字段为 varchar2类型
假设该时间字段名称为 create_date
刚开始我的做法是图方