利用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(); } } }
本文完