媽的 最近被老大叫去弄了下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:
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版本的