mabatis逆向工程selectByExample方法where条件中时间参数问题
前天使用mybatis逆向工程后,使用selectByExample方法的时候,经过criteria生成where条件根据时间参数去查询数据的时候,发现查询数据不对,根据日志打印出的参数,发现时间参数只有日期,没有后面的时间了。先是在查询之前打印时间参数,看了看没问题。然后看mapper.xml中的相应字段也是timestamp类型的。然后又去问别人,都找不到哦原因。于是看逆向工程生成的example源码,发现在Example类里面的addCriterionForJDBCDate方法中是new java.sql.Date(long value)去生成时间参数条件的,于是将java.sql.Date换成java.sql.Timestamp类。问题解决。原因是java.sql包里面的Date只包含日期部分,Timestamp类包含日期,时分秒等完整的时间。以后使用逆向工程时要注意下。