Oracle是一款功能強大的數據庫管理系統,而JDBC則是Java程序與數據庫進行通信的重要工具之一。JDBC連接Oracle數據庫可以使用兩種不同的方式:第一種是使用JDBC-ODBC橋,第二種是使用Oracle提供的JDBC驅動程序。
對于第一種方式,需要先在本地計算機上配置ODBC數據源,然后通過JDBC-ODBC橋程序將Java應用程序與Oracle數據庫連接起來。
//JDBC-ODBC橋連接Oracle的示例代碼 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection conn = DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft ODBC for Oracle};Server=localhost;" + "Port=1521;Uid=myUsername;Pwd=myPassword;" );
然而,JDBC-ODBC橋已被Java官方聲明為已經過時。目前,大多數開發者使用Oracle提供的JDBC驅動程序來連接Oracle數據庫。
Oracle官方提供的JDBC驅動程序位于ojdbc6.jar和ojdbc7.jar中。據Oracle官方文檔,建議盡可能使用最新的ojdbc版本。
//使用Oracle官方提供的JDBC驅動程序連接Oracle的示例代碼 Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:ORCL", "myUsername", "myPassword" );
在JDBC連接Oracle數據庫時,還需要使用Java的PreparedStatement和ResultSet接口來執行SQL語句并獲取查詢結果。
//使用PreparedStatement執行參數化查詢的示例代碼 String sql = "SELECT NAME, AGE FROM PERSON WHERE ID = ?"; PreparedStatement stmt = conn.prepareStatement(sql); stmt.setInt(1, 123); //將第1個參數賦值為123 ResultSet rs = stmt.executeQuery(); //執行查詢語句并返回結果集 while (rs.next()) { String name = rs.getString("NAME"); int age = rs.getInt("AGE"); System.out.println(name + "," + age); }
在以上代碼中,PreparedStatement對象stmt中的問號(?)表示一個占位符,可在后面的代碼中使用setXXX方法為其賦值。PreparedStatement的參數化查詢可以有效防止SQL注入攻擊。
通過以上方法,我們可以輕松連接Oracle數據庫,并對其中的數據進行操作。當然,連接數據庫是一項涉及到安全、穩定性等方面的重要工作,建議開發者在編寫時謹慎操作。