邀月

          從.net中走來的Java愛好者
          posts - 22, comments - 10, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          JDBC Driver For SQL2000/2005/2008(downmoon)

          Posted on 2009-07-16 13:51 邀月 閱讀(4119) 評論(4)  編輯  收藏 所屬分類: Eclipse

          機器上配置的JDK為1.6,SQL2005/2008,而JDBC Driver一直用

          Microsoft SQL Server 2005 JDBC Driver 1.2

          ,支持sql2000/sql2005/sql2008,下載地址:
          http://www.microsoft.com/downloads/details.aspx?familyid=C47053EB-3B64-4794-950D-81E1EC91C1BA&displaylang=zh-cn

          今天試了下最新的

          Microsoft SQL Server JDBC Driver 2.0

          .據官方說明,支持sql2000/sql2005/sql2008,

          http://msdn.microsoft.com/zh-cn/library/ms378422.aspx

          不過僅支持jre6及以上版本。而且文件也成了兩個sqljdbc.jar 或 sqljdbc4.jar,下載后將兩個文件放入jre\lib\ext。替換原來的sqljdbc.jar。結果運行出錯:

          此驅動程序不支持 Java Runtime Environment (JRE) 1.6 版。請使用支持 JDBC 4.0 的 sqljdbc4.jar 類庫。

          重啟Eclipse,還是出錯。后來查下MSDN,看到這么一段:

          必須確保 CLASSPATH 語句僅包含一個 Microsoft SQL Server JDBC driver,例如 sqljdbc.jar 或 sqljdbc4.jar。sqljdbc4.jar 類庫要求使用 6.0 或更高版本的 Java 運行時環境 (JRE)。

          選擇正確的 JAR 文件

          Microsoft SQL Server JDBC Driver 2.0 提供兩個類庫文件:sqljdbc.jarsqljdbc4.jar,具體使用哪個文件取決于首選的 Java 運行時環境 (JRE) 設置。有關選擇哪個 JAR 文件的詳細信息,請參閱 JDBC Driver 的系統要求


          于 是:試著刪除sqljdbc.jar,再重啟Eclipse,運行成功!

          注意:JDBC Driver 1.0以后連接串發生變化:

          1、驅動程序與 SQL SERVER 2000 JDBC DRIVER 之間存在加載沖突

          如果您在同一個進 程中同時加載 Microsoft SQL Server 2000 JDBC Driver 和 Microsoft SQL Server JDBC Driver(版本 1.0、1.1、1.2 和 2.0),在某些情況下,2000 版 JDBC 驅動程序將錯誤地接受 DriverManager.getConnection 方法調用,而該調用實際是針對 Microsoft SQL Server JDBC Driver(版本 1.0、1.1、1.2 和 2.0)的。

          產生這一問題的原因是:如果首先加載 2000 版 JDBC 驅動程序,則此驅動程序將錯誤地接受 URL 前綴“jdbc:sqlserver://”。
          若要解決此問題,請先加載 Microsoft SQL Server JDBC Driver(版本 1.0、1.1、1.2 和 2.0)類,如下所示:

          Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 版本 1.0 或更高版本
          Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); // 2000 版

          這將確保 URL 前綴“jdbc:sqlserver://”由 Microsoft SQL Server JDBC Driver(版本 1.0、1.1、1.2 和 2.0)
          處理,而 URL 前綴“jdbc:microsoft:sqlserver://”由 2000 版 JDBC 驅動程序處理。

          2、自1.2版本后支持實例名的連接    

          jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property=value[;property=value]]

          例:

          String CLASSFORNAME = "com.microsoft.sqlserver.jdbc.SQLServerDriver";  
          String CONNECTSTR 
          = "jdbc:sqlserver://ap2\\vegnet:1433;DatabaseName=agronet2008";  
          String user 
          = "sa";  
          String password 
          = "sa";  
          //***

          更詳細的示例,請查看下載后的\sqljdbc_2.0\chs\help\default.htm





          邀月注:本文版權由邀月和博客園(BlogJava)共同所有,轉載請注明出處。
          助人等于自助!   3w@live.cn

          評論

          # re: JDBC Driver2.0連接的兩個問題(downmoon)  回復  更多評論   

          2009-07-16 16:53 by 隔葉黃鶯
          還沒在項目中使用過 Sql Server,好像不少項目用的 Sql Server+java 組合。個人覺得這個組合有點怪,Sql Server 不參跨平臺,而 Java 總是以跨平臺而自得,不過通常DB和應用是分離的,到也無礙。

          # re: JDBC Driver For SQL2000/2005/2008(downmoon)[未登錄]  回復  更多評論   

          2009-09-25 09:51 by 小人物
          其實數據庫和JAVA程序不一定放在同一臺服務器上面的。所以java+SqlServer、
          并不奇怪。。。

          # re: JDBC Driver For SQL2000/2005/2008(downmoon)[未登錄]  回復  更多評論   

          2009-09-25 09:56 by 小人物
          個人習慣用jtds,第三方出的

          # re: JDBC Driver For SQL2000/2005/2008(downmoon)[未登錄]  回復  更多評論   

          2009-12-23 21:38 by 新手上路
          水平高,佩服。
          因為我到現在還沒搞掂。
          主站蜘蛛池模板: 中卫市| 四川省| 泉州市| 千阳县| 彰化市| 东阳市| 涿鹿县| 兰西县| 儋州市| 普兰县| 防城港市| 陈巴尔虎旗| 苗栗市| 澎湖县| 花莲县| 前郭尔| 临沧市| 丰原市| 安康市| 水富县| 岳阳市| 乌拉特前旗| 辽阳县| 海兴县| 丽江市| 东乡县| 江山市| 八宿县| 景东| 滁州市| 甘德县| 许昌市| 海城市| 黑水县| 古田县| 泸州市| 天津市| 常山县| 建德市| 柘城县| 临江市|