2013-03-20 85 views
2

我想配置一個SQLServer數據庫休眠。SQLServer的Hibernate配置 - 驅動程序類

配置:

public static SessionFactory getSessionFactory() { 
    try { 
     if (null==sessionFactory) { 
      Properties hb_props = new Properties(); 
      hb_props.put("hibernate.dialect", "org.hibernate.dialect.SQLServer2005Dialect"); 
      hb_props.put("hibernate.connection.driver.class", "com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
      hb_props.put("hibernate.connection.username", "someusername"); 
      hb_props.put("hibernate.connection.password", "somepassword"); 
      hb_props.put("hibernate.connection.url", "jdbc:sqlserver://serverurl//dbname"); 
      Configuration configuration = new Configuration(); 
      configuration.setProperties(hb_props); 
      sessionFactory = configuration.addAnnotatedClass(Test.class).buildSessionFactory(); 
     } 
    } catch (Throwable ex) { 
     System.err.println("Initial SessionFactory creation failed." + ex); 
     throw new ExceptionInInitializerError(ex); 
    } 
    return sessionFactory; 
} 

而且我得到以下錯誤:

[main] WARN org.hibernate.connection.DriverManagerConnectionProvider - no JDBC Driver class was specified by property hibernate.connection.driver_class 
[main] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: null at URL: jdbc:sqlserver://serverurl//dbname 
[main] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=someusername, password=****, driver.class=com.microsoft.sqlserver.jdbc.SQLServerDriver} 
[main] WARN org.hibernate.cfg.SettingsFactory - Could not obtain connection to query metadata 
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://serverurl//dbname 
    at java.sql.DriverManager.getConnection(DriverManager.java:602) 
    at java.sql.DriverManager.getConnection(DriverManager.java:154) 
    at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133) 
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:113) 
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2863) 
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2859) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1870) 
     ..... 

我使用sqljdbc-1.2.jar和驅動程序類似乎拼寫正確,cant't到哪是漏洞..

+0

我假設你已經編輯在後SERVERURL和數據庫的名字嗎? – 2013-03-20 09:28:24

+0

這將是有趣的,如果我不= P, 是的,他們已被編輯的安全目的,也許我有點偏執.. – 2013-03-20 09:37:36

+0

這是正確的事情,我只是確保它是故意的 – 2013-03-20 09:48:14

回答

2

嘗試修改此:

hb_props.put("hibernate.connection.driver.class", 
    "com.microsoft.sqlserver.jdbc.SQLServerDriver"); 

要這樣:

hb_props.put("hibernate.connection.driver_class", 
    "com.microsoft.sqlserver.jdbc.SQLServerDriver"); 

configuration guide從JBoss使用的_而不是.

+0

這就是答案;),我不得不說,我聲明屬性「hibernate.connection.url」的方式是錯誤的,而不是「jdbc:sqlserver:// serverurl // dbname」,正確的字符串是這樣的: 「JDBC:SQLSERVER:// SERVERURL;的databaseName = DBNAME」。在很多文章中,我看到在hibernate config xml中它是以第一種方式編寫的,我想知道它在運行時運行時是否不同 – 2013-03-20 11:07:44

相關問題