Java鏈接Oracle database小結

利用jdbc鏈接Oracle數據庫,首先得選對jdbc的版本。html

jdk6須要ojdbc6.jar這個包。若是選錯的話,調用isValid()這個方法時,有可能有這個異常:java

Exception in thread "Thread-5" java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.isValid(I)Z

 

選對之後,url也要設置得對:sql

database.url=jdbc:oracle:thin:@192.168.26.3:1521:yourservicename

第一,若是數據庫在本機上,ip也不可以是localhost,不然的話會拋出這個異常:數據庫

the network adapter could not establish the connection

第二,最後的YourServiceName必定要和NetManager裏面的Naming同樣(數據庫sid)oracle

 

接下來,轉一個示例代碼:性能

 

/**
 * 一個很是標準的鏈接Oracle數據庫的示例代碼
 */
public void testOracle()
{
    Connection con = null;// 建立一個數據庫鏈接
    PreparedStatement pre = null;// 建立預編譯語句對象,通常都是用這個而不用Statement
    ResultSet result = null;// 建立一個結果集對象
    try
    {
        Class.forName("oracle.jdbc.driver.OracleDriver");// 加載Oracle驅動程序
        System.out.println("開始嘗試鏈接數據庫!");
        String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:XE";// 127.0.0.1是本機地址,XE是精簡版Oracle的默認數據庫名
        String user = "system";// 用戶名,系統默認的帳戶名
        String password = "147";// 你安裝時選設置的密碼
        con = DriverManager.getConnection(url, user, password);// 獲取鏈接
        System.out.println("鏈接成功!");
        String sql = "select * from student where name=?";// 預編譯語句,「?」表明參數
        pre = con.prepareStatement(sql);// 實例化預編譯語句
        pre.setString(1, "劉顯安");// 設置參數,前面的1表示參數的索引,而不是表中列名的索引
        result = pre.executeQuery();// 執行查詢,注意括號中不須要再加參數
        while (result.next())
            // 當結果集不爲空時
            System.out.println("學號:" + result.getInt("id") + "姓名:"
                    + result.getString("name"));
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
    finally
    {
        try
        {
            // 逐一將上面的幾個對象關閉,由於不關閉的話會影響性能、而且佔用資源
            // 注意關閉的順序,最後使用的最早關閉
            if (result != null)
                result.close();
            if (pre != null)
                pre.close();
            if (con != null)
                con.close();
            System.out.println("數據庫鏈接已關閉!");
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

 

本文完url

相關文章
相關標籤/搜索