oracle中date类型作为查询条件的处理方法(菜鸟版)
Oracle数据库中表的字段设置为:date类型(这里我不需要时间,因此采用了date型,如果需要时间似乎应采用timestamp类型);
模型层表对应的pojo类及hibernate映射文件中属性的类型为java.util.Date;
表现层采用Dorado处理,dataset中相应的字段也设置为:date类型;
利用MyEclipse中自带的hibernate逆向工程自动生成DAO类。
?
在通过以上配置调用DAO中的方法,进行以date类型属性作为查询条件进行查询时,会产生以下错误:
?????? ORA-01858: 在要求输入数字处找到非数字字符?
??? 个人认为是由于date类型的格式问题导致的,即查询条件中的日期格式与数据库中的格式不一致。因为可以看到,由表现层传到BO层的Date对象为:“Wed Jul 28 13:09:40 CST 2010 ”,而数据库中存储的为:“2010-7-28”,所以考虑转换时间格式。
??? 我采用了以下方法处理该问题:
??? 1、在DAO类中添加利用该属性检索实例的查询方法
List list = xxxxDAO.findByFailueDate(date);
???3、而后将date作为参数,调用DAO中的方法进行查询。顺利得到了想要得到的查询结果。
??? 请各位高手多多指教啊,我是菜鸟,可能处理上走了很多弯路,不过总算是自己走通了,虽然方法笨了点儿。