試試MS SQL2008的JDBC4的驅動方式

      我最近把SQL2005換成了SQL2008,發現原來寫的JDBC代碼不變依然可以正常使用,而且有些程序實例連驅動都不換都可以正常使用,所以我就產生了一用誤解,以爲所有原來在SQL2005下寫的代碼不用任何的變動就可以用了。後來用過一段時間後,發現依然有部分代碼運行是有問題的,主要是數據庫連接不上。後來我的解決方案就是換成jtds的驅動,也就是把驅動jar的包換了。

driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
url = jdbc:sqlserver://localhost:1433;DatabaseName=數據庫名

換成

driver:    net.sourceforge.jtds.jdbc.Driver 
url:    jdbc:jtds:sqlserver://localhost:1433/數據庫名
就搞定了。

 

但如果我想用微軟的SQL2008官方的驅動呢?

於是我下載了官方的驅動,解壓出來後發現有2個文件:

sqljdbc.jar和sqljdbc4.jar

 

微軟是這麼說的,如果你是JDK6.0直接導入sqljdbc4.jar,以下版本的導入sqljdbc.jar。

所以如果怕麻煩的,兩個都導進去也行。

 

以前就聽說過jdbc4是可以省略Class.forName的代碼,今天試了一下,果然可以。所以現在我的BaseDao就寫成這樣了。

這裏提醒一下,上面的driver和url是沒有變的。

不同於SQL2000到SQL2005驅動的升級,兩個都發生了變化。以前SQL2000的寫法:

driver:  com.microsoft.jdbc.sqlserver.SQLServerDriver
url:   jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=數據庫名
與SQL2005是不同的。

 

 

這樣寫出來後,經測試,可以正常運行,並得到連接。

於是我們會有一些疑惑,就是如果不用Class.forName那程序又是怎麼知道用哪個驅動呢?

 

我在網上了解了一下,原來驅動本身基本有一個static的方法,會主動往DriverManager中註冊自己。所以我們也就少了這個步驟。

寫出來,希望對大家有幫助。

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