Oracle JDBC,全稱Oracle Java Database Connectivity,是Oracle公司提供的一種Java數據庫訪問技術。它可以讓Java應用程序通過JDBC API來訪問Oracle數據庫。相比于其他數據庫,使用Oracle數據庫在應用系統中提供更好的可伸縮性和性能。下面我們來看看Oracle JDBC的一些基礎知識和常見用法。
首先,我們需要了解Oracle JDBC的驅動程序。Oracle JDBC有兩種驅動程序: Oracle JDBC Thin Driver和 Oracle JDBC OCI Driver。 Thin Driver是純Java實現的JDBC驅動程序,只需要一個JAR文件即可使用。OCI Driver是需要通過Oracle客戶端來安裝的JDBC驅動程序。我們可以通過以下代碼獲得Thin Driver的連接:
Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "username", "password");
這里,我們使用了Class.forName方法來加載OracleDriver類,然后使用DriverManager.getConnection方法來獲取Oracle數據庫的連接。ORCL是Oracle中的常見數據庫實例名稱。
除了獲取連接外,Oracle JDBC還提供了大量的API來方便我們對Oracle數據庫進行各種操作。下面是一些常見的API用法舉例:
1. 執行SQL查詢并獲取結果集:
Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM EMPLOYEE"); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); float salary = rs.getFloat("salary"); }
2. 執行SQL更新操作:
Statement stmt = conn.createStatement(); stmt.executeUpdate("UPDATE EMPLOYEE SET salary = 5000 WHERE id = 1");
另外,Oracle JDBC還提供了一些高級功能,例如批量更新和存儲過程調用。下面是一個批量更新的例子:
import java.sql.*; public class BatchUpdateExample { public static void main(String[] args) { try { Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "username", "password"); PreparedStatement pstmt = conn.prepareStatement("UPDATE EMPLOYEE SET salary = ? WHERE id = ?"); pstmt.setFloat(1, 5000.0f); pstmt.setInt(2, 1); pstmt.addBatch(); pstmt.setInt(2, 2); pstmt.addBatch(); int[] updateCounts = pstmt.executeBatch(); for (int count : updateCounts) { System.out.println(count); } } catch (Exception e) { e.printStackTrace(); } } }
此代碼執行兩次更新操作,分別將id為1和2的員工的salary字段修改為5000。在批量更新時,使用PreparedStatement.addBatch方法將每個更新語句添加到批量操作中,然后使用PreparedStatement.executeBatch方法同時執行所有更新語句,并返回每個更新的行數。
總的來說,Oracle JDBC是一種方便、易用、高性能的Java數據庫訪問技術,用于Java應用程序訪問Oracle數據庫。通過學習Oracle JDBC的基礎知識和常見用法,我們可以更好地應用它來提高應用程序的性能和可伸縮性。