Java連接Oracle database小結


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

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

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

 

選對以后,url也要設置得對:

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數據庫的示例代碼
 */
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();
        }
    }
}

 

本文完


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM