日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Eclipse JDBC 驅動程序設置

 云中凌 2014-08-06

Eclipse JDBC 驅動程序設置

本文中我們介紹在Eclipse 3.2中怎樣設置和測試Oracle和SQL Server的JDBC驅動程序,以及故障排除。

以下對數據庫的操作以SQL Server2000和Oracle 10g為例。

一、   從Oracle和Microsift網站上下載JDBC驅動程序

        下載Oracle JDBC驅動程序

1.       網址:

http://www.oracle.com/technology/global/cn/software/tech/java/sqlj_jdbc/index.html

2.       在Eclipse安裝目錄,例如D:\lecture\JAVA\Eclipse\eclipse下創(chuàng)建路徑:

D:\lecture\JAVA\Eclipse\eclipse\jdbc\OracleJDBC\lib。

3.       下載4個java歸檔文件放入其中:

1)       ocrs12.jar

2)       ojdbc14.jar

3)       ojdbc14dms.jar

4)       orai18n.jar

 

        下載SQL Server 2000 Driver for JDBC Service Pack 3,支持JDK 1.4

1.       網址:

http://www.microsoft.com/downloads/details.aspx?FamilyID=07287b11-0502-461a-b138-2aa54bfdc03a&displaylang=en

2.       執(zhí)行setup.exe安裝SQL Server JDBC驅動程序。在安裝目錄下有幫助文件。

3.       在Eclipse安裝目錄,例如D:\lecture\JAVA\Eclipse\eclipse下創(chuàng)建路經:

D:\lecture\JAVA\Eclipse\eclipse\jdbc\SQLServerJDBC\lib。

4.       將setup.exe安裝的下面3個java歸檔文件放入其中:

1)       msbase.jar

2)       mssqlserver.jar

3)       msutil.jar

二、   在項目庫中導入驅動程序庫

1.       創(chuàng)建新項目。文件 > 新建 > 項目 > 打開新建項目對話框。

 

 

2.       選擇Java項目 > 下一步 > 打開新建Java項目對話框。

 

 

3.       輸入項目名JDBCTest > 完成。

4.       打開導航器窗口,檢查新創(chuàng)建的項目。

 

 

三、   用于測試連接的代碼示例

        用于SQL Server的測試連接的代碼示例

安裝了 Microsoft SQL Server 2000 JDBC 驅動程序后,可以通過兩種方式從您的程序連接到數據庫:使用連接 URL,或使用 JNDI 數據源。本文介紹如何使用連接 URL 配置和測試數據庫連接。

連接到數據庫的一種方法是通過 JDBC 驅動程序管理器,使用 DriverManager 類的 getConnection 方法。使用此方法時,最簡單的方式是使用一個包含 URL、用戶名和密碼的字符串參數。下面介紹如何從 JDBC 程序載入 Microsoft SQL Server 2000 JDBC 驅動程序。

 

創(chuàng)建測試類

1.       右擊新建的項目JDBCTest > 新建 > 包 >打開新建Java對話框。

 

 

2.       在名稱欄輸入testJDBC > 完成。

3.       右擊新建的包testJDBC > 新建 > 類 > 打開新建Java對話框。

4.       在名稱欄輸入SQLServerJDBCTest >完成。

 

 

添加庫

要將JAR文件添加到現(xiàn)有應用程序中。

1.       右擊項目JDBCTest > 屬性 > 打開JDBCTest的屬性對話框。

 

2.       在左邊的窗格中選擇Java構建路徑 > 在右邊的窗格中選擇標簽

3.       單擊按鈕添加外部JAR > 選擇前面下載的3個SQL Server JDBC驅動程序的JAR文件 > 確定。

 

注冊驅動程序

注冊驅動程序的目的是為了通知 JDBC 驅動程序管理器載入哪個驅動程序。當使用 class.forName 函數載入驅動程序時,您必須指定驅動程序的名稱。以下是 Microsoft SQL Server 2000 JDBC 驅動程序的名稱:

com.microsoft.jdbc.sqlserver.SQLServerDriver

下面的代碼示例演示如何注冊驅動程序:

Driver d = (Driver)Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();

 

傳遞連接 URL

必須以連接 URL 的形式傳遞數據庫連接信息。以下是 Microsoft SQL Server 2000 JDBC 驅動程序的模板 URL。請用您數據庫的值替換以下值:

jdbc:microsoft:sqlserver://servername:1433

下面的代碼示例演示如何指定連接 URL:

con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", "userName", "password");

 

服務器名稱值可以是 IP 地址或主機名(假定您的網絡可以將主機名解析為 IP 地址)。您可以通過對主機名執(zhí)行 PING 命令來進行測試,驗證是否可以接收到響應,以及響應的 IP 地址是否正確。

 

服務器名稱后面的數字值是數據庫偵聽的端口號。上文列出的值是示例默認值。確保用您的數據庫使用的端口號替換該值。

 

要獲取連接 URL 參數的完整列表,請參見 Microsoft SQL Server 2000 JDBC 驅動程序 HTML 幫助,或參見聯(lián)機指南。請參見“連接字符串屬性”一節(jié)。

下面的代碼示例嘗試連接到數據庫,并顯示數據庫名稱、版本和可用編目。請用您服務器的值替換代碼中的服務器屬性:

package testJDBC;

 

public class SQLServerJDBCTest {

    private java.sql.Connection  con = null;

    private final String url = "jdbc:microsoft:sqlserver://";

    private final String serverName= "localhost";

    private final String portNumber = "1433";

    private final String databaseName= "pubs";

    private final String userName = "sa";

    private final String password = "wyfd";

    // 告訴驅動器使用服務器端游標,

    // 它允許在一個連接上的多個活動語句。

    private final String selectMethod = "cursor";

   

    private java.sql.Connection getConnection(){

        try{

          // A. 注冊 SQL Server JDBC 驅動程序

          Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

          // B. 創(chuàng)建新數據庫連接

          con = java.sql.DriverManager.getConnection(getConnectionUrl(),userName,password);

          if(con!=null) System.out.println("Connection Successful!");

        }catch(Exception e){

          e.printStackTrace();

          System.out.println("Error Trace in getConnection() : " + e.getMessage());

        }

        return con;

      }

     

      private String getConnectionUrl(){

        return url+serverName+":"+portNumber+";databaseName="+databaseName+";selectMethod="+selectMethod+";";

      }

     

      private void closeConnection(){

        try{

          if(con!=null)

            con.close();

          con=null;

          }catch(Exception e){

            e.printStackTrace();

          }

      }

 

     

      public void displayDbProperties(){

        java.sql.DatabaseMetaData dm = null;

        java.sql.ResultSet rs = null;

          try{

            con= this.getConnection();

            if(con!=null){

              dm = con.getMetaData();

              System.out.println("驅動器信息:");

              System.out.println("\t驅動器名字: "+ dm.getDriverName());

              System.out.println("\t驅動器版本: "+ dm.getDriverVersion ());

              System.out.println("\n數據庫信息: ");

              System.out.println("\t數據庫名字: "+ dm.getDatabaseProductName());

              System.out.println("\t數據庫版本: "+ dm.getDatabaseProductVersion());

              System.out.println("顯示可用的數據庫目錄:");

              rs = dm.getCatalogs();

              while(rs.next()){

                System.out.println("\tcatalog: "+ rs.getString(1));

              }

              //rs = dm.getTables("ckgl",null,"ckgl","TABLE").getCatalogs();

              while(rs.next()){

                System.out.println("\tcatalog: "+ rs.getString(1));

              }

              rs.close();

              rs = null;

              closeConnection();

            }else System.out.println("Error: No active Connection");

          }catch(Exception e){

          e.printStackTrace();

          }

          dm=null;

      }

 

      public static void main(String[] args) {

          SQLServerJDBCTest sQLServerJDBCTest = new SQLServerJDBCTest();

          sQLServerJDBCTest.displayDbProperties();

      }

}

 

如果此代碼運行成功,其輸出結果應類似于以下內容:

IWAV0055I Java Bean testJDBC.SQLServerJDBCTest started with the main method

Connection Successful!

驅動器信息:

    驅動器名字: SQLServer

    驅動器版本: 2.2.0040

 

數據庫信息:

    數據庫名字: Microsoft SQL Server

    數據庫版本: Microsoft SQL Server  2000 - 8.00.2039 (Intel X86)

    May  3 2005 23:18:38

    Copyright (c) 1988-2003 Microsoft Corporation

    Personal Edition on Windows NT 5.1 (Build 2600: Service Pack 2)

 

顯示可用的數據庫目錄:

    catalog: ckgl

    catalog: coal

    catalog: master

    catalog: msdb

    catalog: Northwind

    catalog: pubs

    catalog: student

    catalog: tempdb

 

有關排除連接故障的基本信息

下面是嘗試連接到 SQL 服務器時常見的錯誤信息:

java.sql.SQLException:[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Login failed for user 'user'.Reason:Not associated with a trusted SQL Server connection.

如果將 SQL Server 2000 的驗證模式設置為“Windows 驗證模式”,則會出現(xiàn)此錯誤信息。Microsoft SQL Server 2000 JDBC 驅動程序不支持使用 Windows NT 驗證進行連接。您必須將 SQL Server 的驗證模式設置為“混合模式”,該模式既允許 Windows 驗證,也允許 SQL Server 驗證。

java.sql.SQLException:[Microsoft][SQLServer 2000 Driver for JDBC]This version of the JDBC driver only supports Microsoft SQL Server 2000. You can either upgrade to SQL Server 2000 or possibly locate another version of the driver.

當您嘗試連接到 SQL Server 2000 以前的 SQL Server 版本時,則會出現(xiàn)此錯誤信息。Microsoft SQL Server 2000 JDBC 驅動程序僅支持與 SQL Server 2000 進行連接。

 

        用于Oracle的測試連接的代碼示例

import java.sql.Connection;

import java.sql.DatabaseMetaData;

import java.sql.DriverManager;

import java.sql.SQLException;

package testJDBC;

 

import java.sql.Connection;

import java.sql.DatabaseMetaData;

import java.sql.DriverManager;

import java.sql.SQLException;

 

public class OracleJDBCTest {

    public static void main(String[] args) throws SQLException, ClassNotFoundException  {

        // A. 注冊 Oracle JDBC 驅動程序。下面兩種方法都可以

        //DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

        Class.forName("oracle.jdbc.driver.OracleDriver");

        // B. 創(chuàng)新新數據庫連接

        Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:oract", "hr", "hr");

        // C. 取得連接數據(元數據)

        DatabaseMetaData md = conn.getMetaData();

        System.out.println("數據庫版本:");

        System.out.println("------------------------------------------------");

        System.out.println(md.getDatabaseProductVersion());

        System.out.println();

        System.out.println("驅動程序名稱與版本:");

        System.out.println("------------------------------------------------");

        System.out.print(md.getDriverName() + " " + md.getDriverVersion());

        // D. 關閉數據庫連接

        conn.close();

    }

}

不要忘記添加前面下載的4個Oracle JDBC庫文件。

如果此代碼運行成功,其輸出結果應類似于以下內容:

數據庫版本:

------------------------------------------------

IWAV0055I Java Bean testJDBC.OracleJDBCTest started with the main method

數據庫版本:

------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production

With the Partitioning, OLAP and Data Mining options

 

驅動程序名稱與版本:

------------------------------------------------

Oracle JDBC driver 10.1.0.5.0

 

注意:有時連接錯誤是由防火墻造成的,所以在用JDBC進行數據庫開發(fā)時要關閉防火墻,包括winXP自帶的防火墻。

 

[參考文獻]

1.       Eclipse 3.2 幫助

2.       如何開始使用 Microsoft JDBC,http://support.microsoft.com/default.aspx?scid=kb;zh-cn;313100

 

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多