本文提供一個完整的 Java 類別範例,示範如何使用 JDBC 連線 Oracle 資料庫、執行查詢並正確管理資源。採用屬性檔案管理連線參數,採用 PreparedStatement 防止 SQL 注入,並展示標準的資源釋放模式。
import java.io.*;
import java.sql.*;
import java.util.Properties;
public class OracleJdbcTest {
private static final String DRIVER_CLASS = "oracle.jdbc.driver.OracleDriver";
private Connection conn;
public void init(FileInputStream fs) throws ClassNotFoundException, SQLException, IOException {
Properties props = new Properties();
props.load(fs);
String url = props.getProperty("db.url");
String user = props.getProperty("db.user");
String password = props.getProperty("db.password");
Class.forName(DRIVER_CLASS);
conn = DriverManager.getConnection(url, user, password);
}
public void fetch() throws SQLException {
String sql = "SELECT SYSDATE FROM dual";
try (PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery()) {
while (rs.next()) {
// 處理查詢結果,例如:System.out.println(rs.getDate(1));
}
} // try-with-resources 自動關閉 ps 和 rs
}
public static void main(String[] args) {
OracleJdbcTest test = new OracleJdbcTest();
try (FileInputStream fs = new FileInputStream("db.properties")) {
test.init(fs);
test.fetch();
} catch (Exception e) {
e.printStackTrace();
}
}
}
db.properties,避免硬編碼,利於部署與維護。ResultSet、Statement、Connection,避免資源洩漏。oracle.jdbc.OracleDriver(舊版 oracle.jdbc.driver.OracleDriver 已棄用但仍相容)。db.url=jdbc:oracle:thin:@localhost:1521:ORCL
db.user=scott
db.password=tiger
ojdbc*.jar 已加入 classpath。此範例適合作為 Java 連線 Oracle 的基礎模板,實際專案中建議整合連線池與 DAO 模式進一步封裝。