快速參考總表
| 資料庫 | 驅動類別 | JDBC URL 格式 | 預設埠號 | 驅動 JAR (典型) |
| Oracle | oracle.jdbc.OracleDriver | jdbc:oracle:thin:@host:port:SID | 1521 | ojdbc8.jar / ojdbc11.jar |
| MySQL | com.mysql.cj.jdbc.Driver | jdbc:mysql://host:port/db?useSSL=false&serverTimezone=UTC | 3306 | mysql-connector-java-8.x.jar |
| PostgreSQL | org.postgresql.Driver | jdbc:postgresql://host:port/db | 5432 | postgresql-42.x.jar |
| SQL Server | com.microsoft.sqlserver.jdbc.SQLServerDriver | jdbc:sqlserver://host:port;databaseName=db | 1433 | mssql-jdbc-12.x.jar |
| MariaDB | org.mariadb.jdbc.Driver | jdbc:mariadb://host:port/db | 3306 | mariadb-java-client-3.x.jar |
| DB2 | com.ibm.db2.jcc.DB2Driver | jdbc:db2://host:port/db | 50000 | db2jcc4.jar |
| SQLite | org.sqlite.JDBC | jdbc:sqlite:/path/to/dbfile | N/A | sqlite-jdbc-3.x.jar |
| H2 | org.h2.Driver | jdbc:h2:~/test 或 jdbc:h2:mem:test | N/A | h2-2.x.jar |
詳細配置範例
Oracle (Thin Driver)
// SID 格式 (傳統)
jdbc:oracle:thin:@192.168.1.100:1521:ORCL
// Service Name 格式 (推薦 12c+)
jdbc:oracle:thin:@//192.168.1.100:1521/PDB1.example.com
// RAC 叢集
jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=node1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=node2)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)))
MySQL 8.x 關鍵參數
jdbc:mysql://localhost:3306/mydb?
useSSL=false&
serverTimezone=Asia/Taipei&
characterEncoding=UTF-8&
allowPublicKeyRetrieval=true&
rewriteBatchedStatements=true&
connectionTimeout=5000
rewriteBatchedStatements=true:大幅提升批次插入效能
useSSL=false:開發環境避免憑證錯誤
serverTimezone:必須指定,避免時區解析錯誤
SQL Server 命名實例連線
// 預設實例
jdbc:sqlserver://localhost:1433;databaseName=mydb
// 命名實例 (動態埠)
jdbc:sqlserver://localhost;instanceName=SQLEXPRESS;databaseName=mydb
// 整合驗證 (Windows)
jdbc:sqlserver://localhost;databaseName=mydb;integratedSecurity=true
PostgreSQL 進階參數
jdbc:postgresql://localhost:5432/mydb?
currentSchema=public&
prepareThreshold=5&
preferQueryMode=simple&
sslmode=disable
連線池整合配置 (HikariCP 範例)
# application.properties (Spring Boot)
spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.hikari.jdbc-url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC
spring.datasource.hikari.username=root
spring.datasource.hikari.password=secret
spring.datasource.hikari.maximum-pool-size=20
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.idle-timeout=300000
spring.datasource.hikari.connection-timeout=20000
spring.datasource.hikari.pool-name=MyAppPool
常見問題排查
| 錯誤現象 | 可能原因 | 解決方案 |
| ClassNotFoundException | 驅動 JAR 未在 classpath | Maven/Gradle 加入正確依賴 |
| Communications link failure | 網路不通/防火牆/埠號錯誤 | telnet host port 測試連通性 |
| Unknown database | 資料庫名稱錯誤/大小寫敏感 | 確認資料庫存在、檢查 lower_case_table_names |
| Access denied | 帳號密碼錯誤/權限不足 | GRANT ALL ON db.* TO 'user'@'%'; FLUSH PRIVILEGES; |
| SSLHandshakeException | MySQL 8+ 預設要求 SSL | URL 加 useSSL=false 或配置信任憑證 |
| Timezone 解析錯誤 | MySQL 時區未設定 | URL 加 serverTimezone=Asia/Taipei |
驅動下載官方連結
版本相容性提醒
⚠️ 重要:驅動版本必須與資料庫伺服器版本相容
- MySQL 8.0 需用 mysql-connector-java 8.x (類別名稱變更為 com.mysql.cj.jdbc.Driver)
- Oracle 19c/21c 建議用 ojdbc11.jar (支援 JDK 11+)
- SQL Server 2019+ 需用 mssql-jdbc 9.x+
- PostgreSQL 14+ 需用 42.3.0+