有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Hibernate不想加载Oracle驱动程序

我下载了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.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");加载驱动程序,效果很好


共 (3) 个答案

  1. # 1 楼答案

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

    hibernate.connection.url jdbc:oracle:thin:@localhost:1521:xe
    

    有关Oracle URL的更多信息,请参阅here

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

    oracle.jdbc.OracleDriver代替oracle.jdbc.driver.OracleDriver

  2. # 2 楼答案

    有几件事:

    • 通过将=置于键和值之间,尝试使属性文件有效
    • 检查值后是否没有任何尾随空格
    • oracle.jdbc.OracleDriver代替oracle.jdbc.driver.OracleDriver。更多参考请参见Difference between Oracle jdbc driver classes?
  3. # 3 楼答案

    问题在于使用了错误的JDBC Oracle驱动程序。当我尝试使用ojdbc6.jar时,一切都很好