`
Messi光明
  • 浏览: 55703 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

关于Oracle10g驱动date类型没有时分秒问题

阅读更多
一般的数据库中,DATE字段仅仅表示日期,不包括日期信息,而Oracle数据库中的DATE数据类型是包括日期、时间的,对于不同的Oracle jdbc驱动版本,对于该问题的处理都有些区别。

最近使用 ORACLE 10G,时间字段因需求,设为了DATE类型,发现hibernate用native SQL 查询,显示不了时分秒,原来是JDBC驱动自动把date映射为 java.sql.date,故截断了时分秒信息,如果你使用9i或者11g 的驱动程序,就没有该问题,但是Oracle10g的JDBC驱动,你会发现没有时分秒 ,在Oracle9.2之后,引入了内置数据类型TIMESTAMP。之所以引入它,是因为内置数据类型DATE的最小单位为秒;DATE的主要问题是它粒度不能足够区别出两个事件哪个先发生。9.2版本后ORACLE在DATE数据类型上扩展出来了TIMESTAMP数据类型,它包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒(纳秒Nanoseconds级的)的信息。如果你想把DATE类型转换成TIMESTAMP类型,就使用CAST函数。 也正是从oracle 9.2开始,内置数据类型DATE和TIMESTAMP在使用9i的JDBC驱动做查询时,DATE被映射为java.sql.Date,TIMESTAMP被映射为java.sql.Timestamp。 从Oracle11开始,其JDBC驱动程序又重新开始回归为将内置类型DATE映射为java.sql.Timestamp(正如9.2之前的那样)。
所以,时分秒精度的丢失与hibernate无关,是oracle jdbc驱动的问题。最好的解决办法就是:换驱动。经测试,将最开始使用的10g的驱动ojdbc14.jar换为11g的驱动ojdbc5.jar后;

配置:





[html] view plaincopy
01.<property name="hibernate.connection.oracle.jdbc.V8Compatible">true</property>  

或者在 数据库中把 date 设为 timestamp 类型。
各个驱动包存在的BUG:
2
1
分享到:
评论
1 楼 新的开始_加油 2014-04-15  

相关推荐

    oracle11g驱动包

    Oracle 11g驱动包是用于Java应用程序与Oracle数据库之间通信的重要组件,它遵循Java Database Connectivity (JDBC) 标准。在Java编程环境中,如果你需要连接到Oracle 11g数据库,就需要这个驱动包。Oracle 11g JDBC...

    oracle10g驱动jar包

    racle10gjdbc驱动是一款的数据库驱动软件。大家在使用racle10gjdbc程序之前需要在电脑端安装这个驱动,...驱动介绍racle10gjdbc驱动程序,运用在java连接oracle10g。oracle10gjdbc驱动包存放位置为E:\orac,欢迎下载体验

    oracle各个版本的驱动包oracle10g到19g

    oracle数据库驱动。包含了oracle oracle10g、11g、12c、19c的jar驱动包。解压密码是123456。

    Oracle10g驱动包

    Oracle10g驱动包是专为Java应用程序设计的,用于连接到Oracle数据库10g版本的Java Database Connectivity (JDBC)驱动程序。JDBC是Java平台的一个标准接口,它允许Java程序员通过Java代码来访问各种类型的数据库。...

    oracle11g驱动

    Oracle 11g驱动是Java应用程序与Oracle 11g数据库进行交互的重要组件,主要用于实现JDBC(Java Database Connectivity)接口。JDBC是Java平台的标准API,它允许Java程序员使用SQL语言来访问和操作数据库。Oracle 11g...

    Oracle 10g ODBC驱动 各种版本的

    Oracle 10g ODBC驱动程序是连接到Oracle数据库的关键组件,它允许应用程序通过开放数据库连接(ODBC)标准与Oracle 10g数据库进行通信。ODBC是一种接口,使得开发者能够编写一次代码,就可以在多种数据库系统上运行...

    ORACLE 10G java 驱动包

    Oracle 10G Java驱动包是Oracle数据库与Java应用程序交互的重要组成部分,主要包含两个关键的JAR文件:`classes12.jar` 和 `ojdbc14.jar`。这两个文件为Java开发者提供了连接Oracle 10G数据库的必要工具,使得在Java...

    oracle 10g jdbc 驱动

    总结来说,Oracle 10g JDBC驱动是Java开发者与Oracle 10g数据库进行交互的重要工具,提供了多种驱动类型以适应不同的应用场景,通过规范化的JDBC接口简化了数据库操作。在实际开发中,正确选择和使用JDBC驱动能有效...

    oracle10g驱动包

    这个“oracle10g驱动包”包含了不同版本的Oracle JDBC驱动程序,JDBC(Java Database Connectivity)是Java编程语言与各种类型的数据库进行交互的一种标准接口。 Oracle JDBC驱动分为四种类型: 1. **类型1( Thin...

    Oracle 9i 10g 11g odbc driver数据库连接驱动

    总的来说,Oracle 9i、10g、11g的ODBC驱动是连接Windows平台上应用程序与Oracle数据库的重要工具,它们不断适应Oracle数据库的新特性和性能优化,为开发者提供了灵活、高效的数据访问方式。正确配置和使用这些驱动,...

    Oracle11G驱动

    oracle11G驱动包oracle11G驱动包oracle11G驱动包oracle11G驱动包oracle11G驱动包oracle11G驱动包oracle11G驱动包oracle11G驱动包oracle11G驱动包oracle11G驱动包oracle11G驱动包oracle11G驱动包oracle11G驱动包...

    oracle 10g 驱动

    oracle 10g的驱动~~

    oracle11g驱动jar包 官方最新版_64位/32位

    oracle11g驱动jar包是针对oracle11g数据库软件推出的驱动安装程序。如果开发人员在开发程序时遇到了Java数据显示错误,说明系统中缺少了oracle11gjdbc驱动包。需要的用户欢迎下载。驱动包介绍oracle11gjdbc驱动MySQL...

    Oracle 9i、10g、11g通用jdbc驱动包

    Oracle 9i、10g、11g通用JDBC驱动包是Oracle公司为Java开发者提供的数据库连接驱动,使得Java应用程序能够与Oracle数据库进行交互。这些驱动程序遵循Java Database Connectivity (JDBC) API规范,是Java平台上的标准...

    Oracle 10G 驱动jar包

    Oracle 10G 驱动jar包,上传大数据文件到数据库需要Oracle 10的驱动包支持。支持Oracle 9i

    oracle10g 驱动jar包

    连接数据库oracle10g时用到的驱动jar包ojdbc5.jar

Global site tag (gtag.js) - Google Analytics