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

JDBC 連接主流資料庫完整指南:驅動類、URL 格式與連線範例

     編輯:Java 程式設計入門

JDBC 連線字串因資料庫廠商而異,本文彙整 7 大主流資料庫 的標準驅動類名、URL 格式、必要參數與完整連線程式碼,並標註常見版本差異與避坑要點。

快速查閱表

資料庫驅動類(建議版本)URL 格式預設埠
DB2 com.ibm.db2.jcc.DB2Driver (JCC 通用驅動) jdbc:db2://<host>:<port>/<dbName> 50000
SQL Server com.microsoft.sqlserver.jdbc.SQLServerDriver (mssql-jdbc) jdbc:sqlserver://<host>:<port>;databaseName=<db> 1433
Sybase com.sybase.jdbc4.jdbc.SybDriver (jConnect 7+) jdbc:sybase:Tds:<host>:<port>/<db> 5000
MySQL com.mysql.cj.jdbc.Driver (8.0+) jdbc:mysql://<host>:<port>/<db>?useSSL=false&serverTimezone=UTC 3306
PostgreSQL org.postgresql.Driver jdbc:postgresql://<host>:<port>/<db> 5432
Oracle oracle.jdbc.OracleDriver (ojdbc8/11) jdbc:oracle:thin:@//<host>:<port>/<service_name> 1521
ODBC 橋接 sun.jdbc.odbc.JdbcOdbcDriver (Java 8 移除) jdbc:odbc:<DSN> —

完整連線程式碼範本

import java.sql.*;

public class JdbcConnector {
    public static Connection getConnection(String driver, String url, String user, String pwd) 
            throws ClassNotFoundException, SQLException {
        Class.forName(driver);                 // 1. 載入驅動(Java 6+ 可省略,SPI 自動載入)
        return DriverManager.getConnection(url, user, pwd); // 2. 建立連線
    }

    public static void main(String[] args) {
        // MySQL 8 範例
        String driver = "com.mysql.cj.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=Asia/Taipei";
        String user = "root";
        String pwd  = "password";

        try (Connection conn = getConnection(driver, url, user, pwd)) {
            System.out.println("連線成功:" + conn.getMetaData().getURL());
            // 執行 SQL...
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

各資料庫關鍵避坑提醒

MySQL 8.0+

  • 驅動類從 com.mysql.jdbc.Driver 變更為 com.mysql.cj.jdbc.Driver
  • 必須加 useSSL=false(非生產環境)與 serverTimezone 避免時區警告
  • 支援 caching_sha2_password 認證,舊版驅動需升級

Oracle 12c/19c/21c

  • 推薦 服務名稱 格式:jdbc:oracle:thin:@//host:port/service_name
  • 舊 SID 格式:jdbc:oracle:thin:@host:port:SID(相容但不推薦)
  • 驅動包 ojdbc8.jar (Java 8) / ojdbc11.jar (Java 11+)

SQL Server

  • 微軟官方驅動 mssql-jdbc 取代舊 jtds
  • URL 需指定 databaseName 屬性
  • 啟用 TLS:encrypt=true;trustServerCertificate=false

PostgreSQL

  • URL 簡潔,支援 currentSchema=myschema 設定預設 Schema
  • 大寫識別碼需雙引號:jdbc:postgresql://host/db?currentSchema="MySchema"

DB2

  • JCC 通用驅動支援 Type 4 (純 Java) 直連
  • URL 可加 currentSchema=SCHEMA、securityMechanism=13 (加密)

Sybase ASE

  • jConnect 7+ 驅動類 com.sybase.jdbc4.jdbc.SybDriver
  • TDS 協定埠預設 5000,確認 server.ini 設定

最佳實務:連線池與配置外部化

# application.properties (Spring Boot 風格)
datasource.driver-class-name=com.mysql.cj.jdbc.Driver
datasource.url=jdbc:mysql://${DB_HOST}:${DB_PORT}/${DB_NAME}?useSSL=false&serverTimezone=UTC
datasource.username=${DB_USER}
datasource.password=${DB_PASS}
datasource.hikari.maximum-pool-size=20
  • ✅ 驅動類、URL、帳密全外部化
  • ✅ 使用 HikariCP / Druid 連線池
  • ✅ 生產環境啟用 SSL、憑證驗證

總結

掌握各資料庫的驅動類全名、標準 URL 格式、關鍵連線參數,搭配連線池與配置外部化,即可構建穩健、可移植的資料存取層。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved