Linux下通過JDBC串連Oracle,SqlServer和PostgreSQL

來源:互聯網
上載者:User

今天正好需要統計三個網站欄目資訊更新情況,而這三個網站的後台採用了不同的資料庫管理系統。初步想法是通過建立一個小的Tomcat webapp,進而通過JDBC訪問這三個後台資料庫,並根據返回的資料產生報表。

1 開發環境

  • 資料庫管理系統:一個是SqlServer 2000,另一個是Oracle 9i,再一個是PostgreSQL9.1
  • Tomcat執行平台:CentOSx64 + JDK7.0x64 (全64位環境)
2 JDBC驅動的選擇2.1 Oracle9iOracle官方提供了ojdbc6.jar這個type 4 JDBC驅動,僅此一個檔案就能完成對JDBC的支援,將其拷貝到WEB-INF/lib下。關鍵代碼如下:
         Class.forName("oracle.jdbc.driver.OracleDriver");
         DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
         String dbUrl = "jdbc:oracle:thin:@IP地址:1521:執行個體名";


oracle對於相容性做的非常好,這個版本的JDBC驅動對oracle9i依然支援良好。
2.2 SqlServer2000微軟官方也提供了SqlServer的type 4 JDBC驅動,具體說來有兩個檔案:sqljdbc4.jar, sqljdbc.jar,其中帶4的是最新的版本可以運行於JDK7.0下,而不帶4的版本不能運行於JDK7下,問題是sqljdbc4.jar只支援SqlServer 2005以上的版本,不支援SqlServer 2000。也就是說要想通過微軟提供的JDBC驅動操作SqlServer 2000,你的JDK版本一定要比JDK7低才行,可是我們的開發環境已經確定了是JDK7。有此想到了兩個解決思路:
一是使用JDBC-ODBC橋接,unixODBC是Linux平台上的ODBC實現,進而還需要安裝SqlServer 2000的ODBC驅動,www.unixODBC.org給出了兩個連結,一個不是免費開源的;另一個是基於freetds的ODBC驅動,不知為什麼www.freetds.org網站打不開了。我以前用過freetds的命令列串連SqlServer還是不錯的。ODBC的配置非常複雜,尤其是在Linux 環境下,特別不友好。懶惰的心理下,放棄了這種思路。
二是既然freetds可以操作SqlServer,為什麼不越過ODBC,讓JDBC直接基於tds呢,很幸運在網上找到了一個好的解決方案:jTDS,詳見http://jtds.sourceforge.net。這個項目提供了基於TDS協議的JDBC實現,是一個純的type 4 JDBC驅動,通過一個jtds-1.3.0.jar即可滿足通過JDBC訪問SqlServer2000的需要。而且可以運行於JDK7.0下,正好滿足我的要求。
最終採取了第二種思路,關鍵代碼如下:
              Class.forName("net.sourceforge.jtds.jdbc.Driver");
              DriverManager.registerDriver(new net.sourceforge.jtds.jdbc.Driver());
              String dbUrl = "jdbc:jtds:sqlserver://IP地址:1433/資料庫名";
2.3 PostgreSQL9.1

官網jdbc.potgresql.org提供postgresql-9.2-1000.jdbc4.jar,這也是一個type 4 JDBC驅動,下載即可使用。關鍵代碼如下:

           Class.forName("org.postgresql.Driver");
           dbUrl = "jdbc:postgresql://IP地址:5432/資料庫名";

這個驅動載入的時候自動註冊,所以不需要再單獨進行registerDriver了。

3 總結通過這個小小的項目,總結一下目前常用的資料庫的JDBC驅動選擇:(1)SQL Server 對於2005及以上版本,建議使用微軟官方的type 4JDBC驅動;對於2000版本,如果JDK環境較老,可以使用微軟官方版本,如果JDK7.0則使用jTDS這個type 4JDBC驅動;(2)Oracle,對於所有版本推薦使用官方的thin驅動,也就是type4的JDBC驅動;(3)PostgreSQL, MySql,官方提供了type 4的JDBC驅動,使用即可。網路是個寶藏,但是要找到你真正需要的東西,就必須有完整的知識體繫結構,必須有清晰的分析思路。如果需要在.net架構下訪問Sqlserver和Oracle,可以參考我的另一篇部落格:http://blog.csdn.net/smstong/article/details/5874451

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.