Java 冬眠不';我不想加载Oracle驱动程序

Java 冬眠不';我不想加载Oracle驱动程序,java,oracle,hibernate,Java,Oracle,Hibernate,我下载了Hibernate 4.1.2并使用Oracle Database 10g Release 2。我使用的JDBC驱动程序是ojdbc14.jar 我将HibernateUtil类设置为: public class HibernateUtil { private static final SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSes

我下载了Hibernate 4.1.2并使用Oracle Database 10g Release 2。我使用的JDBC驱动程序是
ojdbc14.jar

我将HibernateUtil类设置为:

public class HibernateUtil {
    private static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory() {
        // Create the SessionFactory from hibernate.cfg.xml
        try{
            Configuration configuration = new Configuration();
            configuration.configure();
            ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();        
            return configuration.buildSessionFactory(serviceRegistry);
        }catch(HibernateException ex){
            ex.printStackTrace();
            throw ex;
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}
hibernate.properties
中,我有:

hibernate.dialect org.hibernate.dialect.OracleDialect
hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver
hibernate.connection.username HR
hibernate.connection.password HR
hibernate.connection.url jdbc:oracle:thin:@localhost:1521/xe
但是Hibernate不想加载驱动程序。它抛出一个异常,表示“找不到合适的驱动程序”

我试图用
Class.forName(“oracle.jdbc.driver.OracleDriver”)加载驱动程序并且工作正常。

有几件事:

  • 尝试将=置于键和值之间,使属性文件有效
  • 检查值后是否没有任何尾随空格
  • 使用
    oracle.jdbc.OracleDriver
    而不是
    oracle.jdbc.driver.OracleDriver
    。有关更多参考,请参阅

您的连接URL配置错误,应为:

hibernate.connection.url jdbc:oracle:thin:@localhost:1521:xe
有关Oracle URL的更多信息,请参阅

正如其他答案所指出的那样:


使用
oracle.jdbc.OracleDriver
而不是
oracle.jdbc.driver.OracleDriver

问题在于使用了错误的jdbc-oracle驱动程序。当我尝试使用
ojdbc6.jar时
一切正常。

属性不应该用
=
字符分隔吗?例如:
hibernate.dialogue=org.hibernate.dialogue.Oracledialogue
etc?@mcfinnigan,很好,但在例外情况下,我看到“没有适合jdbc的驱动程序:oracle:thin:@localhost:1521/xe”,所以它看起来正在读取文件fine.hmm。您确定oracle jar在类路径上吗?是的。我可以通过
Class.forName
加载它。如果在构建
配置之前添加
Class.forName(…)
会怎么样?顺便说一下,属性文件是有效的,但很少使用这种语法,因此,这非常令人惊讶。我使用的是
oracle.jdbc.OracleDriver
还是
oracle.jdbc.driver.OracleDriver
你能将完整的Hibernate stacktrace添加到你的帖子中吗?我使用的是
…@localhost:1521:xe
还是
…@localhost:1521/xe>似乎并不重要。正如我通过JDBC所说的,我能够使用完全相同的设置进行连接。