萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mssql數據庫 >> hibernate連接sqlserver的問題

hibernate連接sqlserver的問題

   媽的 最近被老大叫去弄了下sqlserver

  好嘛,很簡單 ,hibernate改一下配置就行了嘛

  弄了半天 找驅動包什麼的

  用sqlserver客戶端連數據庫是沒問題了(吐槽下那個連接字符串,別人端口前面都是加:號 微軟偏要弄個,號)

  然後用myeclipse連上去映射實體也沒問題(這個功能只是減少工作量,但是映射完還得自己手動改一改)

  到最後用程序連的時候來問題了:

  java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseDatabaseMetaData.getJDBCMajorVersion()I

  網上搜了還有種情況:

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

  據說是microsoft(微軟)提供的SqlServer數據庫驅動存在bug。(注意:java代碼調原驅動連接數據庫是沒有問題的,搭配hibernate會有此問題。----別人這麼說的 我沒試過非hibernate方式,待驗證) 需要換一種驅動連接,使用jtds這種驅動,就可以了。

  配置改一下就ok:

net.sourceforge.jtds.jdbc.Driver

jdbc:jtds:sqlserver://數據庫IP:端口;DatabaseName=xxx

  jtds下載地址:http://sourceforge.net/projects/jtds/files/

  順便再說一下,最新版本的jtds可能需要jdk7的支持

  如果你用的比較低的版本可能要下老一點的jtds

  比如我用的jdk1.6我只能用jtds1.2 用1.3以後的都會報錯:

  java.lang.UnsupportedClassVersionError: net/sourceforge/jtds/jdbc/Driver : Unsupported major.minor version 51.0

  出現這種錯誤就把jtds版本用低一點的就好了

  至於網上說把jdk弄高版本,一般開發中不會輕易變更jdk版本的

copyright © 萬盛學電腦網 all rights reserved