如何正确地转换成 java.util.Date 通过 JPA 的 Oracle 日期字段

2025-03-05 07:19:16
推荐回答(2个)
回答1:

简而言之,通过升级到ojdbc6.jar的ojdbString queryStr = "SELECT T.MDATE FROM MTABLE T"; Query query = em.createNativeQuery(queryStr); SQLQuery sqlQuery = (SQLQuery) ((HibernateQuery) query).getHibernateQuery(); sqlQuery.addScalar("MDATE", Hibernate.TIMESTAMP); List resultList = query.getResultList(); 4.jar驱动程序解决此问题。为更多的信息,请参阅向与日期和时间戳怎么?
换句话说,Oracle DATE 类型映射到 Java,如下所示:
ojdbString queryStr = "SELECT T.MDATE FROM MTABLE T"; Query query = em.createNativeQuery(queryStr); SQLQuery sqlQuery = (SQLQuery) ((HibernateQuery) query).getHibernateQuery(); sqlQuery.addScalar("MDATE", Hibernate.TIMESTAMP); List resultList = query.getResultList(); 4.jar : 日期 > java.sql.Date
ojdbc6.jar : 日期 > java.sql.Timestamp
在 java.sql.Date 有没有时间部分。
编辑 17.03.2012:
如果没有机会升级的驱动程序由于其他的限制,在这里是将 Oracle 日期映射到 java.sql.Timestamp 在 JPA 与休眠的解决方法:
String queryStr = "SELECT T.MDATE FROM MTABLE T";
Query query = em.createNativeQuery(queryStr);
SQLQuery sqlQuery = (SQLQuery) ((HibernateQuery) query).getHibernateQuery();
sqlQuery.addScalar("MDATE", Hibernate.TIMESTAMP);
List resultList = query.getResultList();

回答2:

示例如下:
package com.zhidao;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class CeShi {
public static void main(String[] args) {
String dateStr = "2010-10-11 10:00:02";
try {
Date d = parseDate(dateStr);//将字符串转换成date类型
System.out.println(d);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//将字符串转换成date类型方法
static public Date parseDate(String s) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
return format.parse(s);
}
}
结果是:
Mon Oct 11 00:00:00 CST 2010