hibernate連接數據庫出現錯誤

Sqlserver 2008 JDBC驅動有問題

jtds1.2.7即可(jtds-1.2.7.jar



http://wonengchuangzaoqij.blog.163.com/blog/static/3716743920131311254853/


java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseDatabaseMetaData.supportsGetGeneratedKeys()Z 

 

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseDatabaseMetaData.supportsGetGeneratedKeys()Z
 at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:123)
 at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119)
 at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115)
 at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339)
 at dao.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:31)
 at dao.BaseHibernateDAO.getSession(BaseHibernateDAO.java:13)
 at HibernateDAOTest.main(HibernateDAOTest.java:16)

 

解決:microsoft提供的數據庫驅動存在bug。需要換一種驅動連接,使用jtds(下載地址:http://sourceforge.net/projects/jtds/files/)下載jtds1.2版,解壓得到jtds-1.2.jar,引用到eclipse中項目目錄下(去除原驅動引用),更改hibernate配置文件:

原驅動連接配置:

 <property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
        <property name="connection.url">jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=hibernate</property>
更改jtds連接:   
        <property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
        <property name="connection.url">jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=hibernate</property>

問題得到解決。補充:java代碼調原驅動連接數據庫是沒有問題的,搭配hibernate會有此問題。


在連接mysql5.1時正常,連接sql2000時就是連不上,鬱悶,終於在網上找到了解答,原來是sql驅動和hibernate的兼容性問題,現問題已解決,留此文備查.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章