首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JDBC 連接三大主流資料庫完整範本:SQL Server、MySQL、Oracle

     編輯:Java 相關知識

通用 JDBC 四步驟

  1. Class.forName(driverClass) 載入驅動(JDBC 4.0+ 可省略)。
  2. DriverManager.getConnection(url, user, pwd) 建立連線。
  3. Statement/PreparedStatement 執行 SQL。
  4. ResultSet 處理結果,最後關閉資源。

1. SQL Server (Microsoft 官方驅動)

String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url    = "jdbc:sqlserver://localhost:1433;DatabaseName=pubs";
String user   = "sa";
String pwd    = "";

try (Connection conn = DriverManager.getConnection(url, user, pwd);
     Statement stmt = conn.createStatement();
     ResultSet rs = stmt.executeQuery("SELECT * FROM authors")) {
    Class.forName(driver);
    while (rs.next()) {
        System.out.println(rs.getString("au_fname") + " " + rs.getString("au_lname"));
    }
} catch (Exception e) { e.printStackTrace(); }
舊版 com.microsoft.jdbc.sqlserver.SQLServerDriver + jdbc:microsoft:sqlserver:// 已淘汰,請改用上述新版。

2. MySQL (Connector/J)

String driver = "com.mysql.cj.jdbc.Driver";  // 8.0+ 類別名
String url    = "jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC";
String user   = "root";
String pwd    = "guapo";

try (Connection conn = DriverManager.getConnection(url, user, pwd);
     Statement stmt = conn.createStatement();
     ResultSet rs = stmt.executeQuery("SELECT name FROM pet")) {
    Class.forName(driver);
    while (rs.next()) System.out.println(rs.getString("name"));
} catch (Exception e) { e.printStackTrace(); }

關鍵參數:useSSL=false 關閉 SSL(本機測試)、serverTimezone=UTC 避免時區警告。

3. Oracle (兩種模式)

模式 A:JDBC-ODBC Bridge(已移除於 Java 8+,僅供舊系統參考)

// 僅適用 Java 7 或更早版本
String url = "jdbc:odbc:myOracleDSN"; // 需預先在 ODBC 管理員建立系統 DSN
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// ...後續同通用流程

模式 B:Oracle Thin Driver(標準、純 Java、推薦)

String driver = "oracle.jdbc.driver.OracleDriver"; // 或 oracle.jdbc.OracleDriver
String url    = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL"; // SID 模式
// 服務名模式:jdbc:oracle:thin:@//host:port/service_name
String user   = "admin";
String pwd    = "123";

try (Connection conn = DriverManager.getConnection(url, user, pwd);
     Statement stmt = conn.createStatement();
     ResultSet rs = stmt.executeQuery("SELECT * FROM dloginmsg")) {
    Class.forName(driver);
    while (rs.next()) {
        System.out.println(rs.getString(2) + ", " + rs.getString(1));
    }
} catch (Exception e) { e.printStackTrace(); }

驅動 JAR 取得與版本對應

資料庫Maven 坐標 (最新穩定版參考)備註
SQL Servercom.microsoft.sqlserver:mssql-jdbc:12.4.2.jre11依 JDK 版本選 jre8/jre11/jre17
MySQLcom.mysql:mysql-connector-j:8.3.08.0+ 類別名變更為 com.mysql.cj.jdbc.Driver
Oraclecom.oracle.database.jdbc:ojdbc11:23.4.0.0需 Oracle 帳號下載或從 Maven Central 取得

最佳實踐清單

  • 統一使用 PreparedStatement:防注入、預編譯複用。
  • 連線池:HikariCP / Druid / Tomcat DataSource,勿手工管理連線。
  • try-with-resources:自動關閉 Connection/Statement/ResultSet。
  • 異常轉換:捕獲 SQLException 包裝為業務異常上拋,保留堆疊。
  • 批次處理:大量寫入用 addBatch()/executeBatch()。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved