利用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