DB2 作為企業級關係型資料庫,其 JDBC 連線配置常因版本差異、驅動類型混淆導致開發者踩坑。本文整理實戰經驗,系統梳理驅動選型、連線字串格式、類庫部署等關鍵點,助你快速建立穩定連線。
import java.sql.*; 即可使用,無需額外引入 JDBC 包(Java 5 及以上版本)。COM.ibm.db2.jdbc.app.DB2Driver,需客戶端安裝 DB2 Client,效能較好。COM.ibm.db2.jdbc.net.DB2Driver,無需客戶端,跨平台部署友好。db2java.zip(或重命名為 db2java.jar),位於 DB2 安裝目錄或 JDK 目錄下。| 場景 | 格式範本 | 實例 |
|---|---|---|
| 本地連線 | jdbc:db2:<database_name> |
jdbc:db2:rdb(rdb 須在預設 Instance 下) |
| 遠端連線 | jdbc:db2://<host>:<port>/<database_name> |
jdbc:db2://192.168.1.10:50000/rdb |
注意:早期文檔常誤寫為 jdbc:db2://host/port:db,正確格式採用冒號分隔 Port,斜線分隔 Database。
// 1. 解壓 db2java.zip,將 COM 目錄置於 Classpath
// 2. 註冊驅動(二選一)
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance(); // Type 2
// Class.forName("COM.ibm.db2.jdbc.net.DB2Driver").newInstance(); // Type 4
// 3. 獲取連線
Connection conn = DriverManager.getConnection(url, user, password);
db2java.zip 重命名為 db2java.jar。$CATALINA_HOME/lib(Tomcat 6+)或 $CATALINA_HOME/common/lib(Tomcat 5.x)。<Resource name="jdbc/DB2DS" auth="Container" type="javax.sql.DataSource"
driverClassName="COM.ibm.db2.jdbc.net.DB2Driver"
url="jdbc:db2://192.168.1.10:50000/rdb"
username="db2user" password="secret" maxActive="20"/>
ClassNotFoundException:驅動 Jar 未在 Classpath/模組路徑中。SQLException: Invalid connection string format:檢查 URL 格式,特別是遠端連線的 Port 分隔符。?useUnicode=true&characterEncoding=UTF-8,並確保資料庫、表、欄位編碼一致。掌握驅動類型差異、正確的 URL 語法、類庫部署位置,即可解決 90% 的 DB2 JDBC 連線問題。生產環境強烈建議使用連線池(HikariCP/Druid)+ JNDI 管理資源。