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

Java 連接主流資料庫完整速查:Oracle、SQL Server、DB2、Informix 連接代碼與配置

     編輯:Java 程式設計入門

Java 應用連接不同資料庫時,驅動類名、JDBC URL 格式、連接參數各不相同。本文匯總 Oracle、SQL Server、DB2、Informix 四大主流商業資料庫的標準連接代碼範例、驅動獲取途徑、URL 參數詳解、連線池整合建議,供開發者快速查閱與複製適配。

通用連接模板

import java.sql.*;

public class DbConnectTemplate {
    public static void main(String[] args) {
        String driver = "";  // 驅動類全限定名
        String url = "";     // JDBC URL
        String user = "";    // 用戶名
        String password = ""; // 密碼
        
        Connection conn = null;
        try {
            Class.forName(driver); // JDBC 4.0+ 可省略
            conn = DriverManager.getConnection(url, user, password);
            System.out.println("連接成功: " + conn.getMetaData().getDatabaseProductName());
            
            // 簡單驗證
            try (Statement stmt = conn.createStatement();
                 ResultSet rs = stmt.executeQuery("SELECT 1")) {
                if (rs.next()) System.out.println("測試查詢: " + rs.getInt(1));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (conn != null) try { conn.close(); } catch (Exception ignored) {}
        }
    }
}

四大資料庫連接參數速查表

資料庫驅動類JDBC URL 格式驅動獲取 (Maven 坐標)預設埠
Oracleoracle.jdbc.OracleDriverjdbc:oracle:thin:@host:port:SID
jdbc:oracle:thin:@host:port/serviceName (12c+ PDB)
jdbc:oracle:oci:@tnsName (Thin/OCI)
com.oracle.database.jdbc:ojdbc8:21.9.0.0 (需 Oracle 帳號下載)1521
SQL Servercom.microsoft.sqlserver.jdbc.SQLServerDriver (官方)
net.sourceforge.jtds.jdbc.Driver (jTDS)
jdbc:sqlserver://host:port;databaseName=db (官方)
jdbc:jtds:sqlserver://host:port/db (jTDS)
官方: com.microsoft.sqlserver:mssql-jdbc:12.2.0
jTDS: net.sourceforge.jtds:jtds:1.3.1
1433
DB2com.ibm.db2.jcc.DB2Driverjdbc:db2://host:port/dbName (Type 4)
jdbc:db2:dbAlias (Type 2, 需客戶端)
com.ibm.db2:jcc:11.5.8.0 (IBM 網站下載)50000
Informixcom.informix.jdbc.IfxDriverjdbc:informix-sqli://host:port/db:INFORMIXSERVER=serverNamecom.ibm.informix:jdbc:4.50.JC6 (IBM 網站下載)1526/9088

各資料庫完整代碼範例

1. Oracle (Thin 模式,最常用)

String driver = "oracle.jdbc.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:ORCL"; // SID
// String url = "jdbc:oracle:thin:@localhost:1521/pdborcl"; // 12c+ Service Name
String user = "scott";
String password = "tiger";

// 連線池建議 (HikariCP)
/*
HikariConfig config = new HikariConfig();
config.setJdbcUrl(url);
config.setUsername(user);
config.setPassword(password);
config.setDriverClassName(driver);
config.setMaximumPoolSize(20);
config.addDataSourceProperty("oracle.net.CONNECT_TIMEOUT", "5000");
HikariDataSource ds = new HikariDataSource(config);
*/

2. SQL Server (Microsoft 官方驅動,推薦)

String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String url = "jdbc:sqlserver://localhost:1433;databaseName=pubs;encrypt=true;trustServerCertificate=true";
String user = "sa";
String password = "yourPassword";

// 關鍵 URL 參數
// encrypt=true / false (是否 SSL)
// trustServerCertificate=true (開發環境自簽憑證)
// authentication=ActiveDirectoryPassword (Azure AD)
// applicationName=MyApp (應用名稱,利於監控)

3. DB2 (Type 4 純 Java 驅動)

String driver = "com.ibm.db2.jcc.DB2Driver";
String url = "jdbc:db2://localhost:50000/SAMPLE"; // 資料庫別名 SAMPLE
String user = "db2admin";
String password = "password";

// DB2 特有屬性
// currentSchema=MY_SCHEMA (設定預設 Schema)
// securityMechanism=3 (僅用戶名密碼)
// sslConnection=true (SSL)

4. Informix

String driver = "com.informix.jdbc.IfxDriver";
String url = "jdbc:informix-sqli://192.168.1.100:9088/mydb:INFORMIXSERVER=ol_informix1210";
String user = "informix";
String password = "password";

// 關鍵參數
// INFORMIXSERVER: 必須與伺服器 sqlhosts 配置一致
// DELIMIDENT=Y (支援雙引號識別符)
// IFX_LOCK_MODE_WAIT=10 (鎖等待秒數)

Tomcat / Spring Boot 整合配置

Tomcat JNDI DataSource (context.xml)





 

Spring Boot application.yml

spring:
  datasource:
    # Oracle
    url: jdbc:oracle:thin:@localhost:1521:ORCL
    username: scott
    password: tiger
    driver-class-name: oracle.jdbc.OracleDriver
    hikari:
      maximum-pool-size: 20
      connection-timeout: 5000
      validation-timeout: 3000
      # Oracle 特有
      data-source-properties:
        oracle.net.CONNECT_TIMEOUT: 5000
        oracle.jdbc.ReadTimeout: 30000

常見坑點與避雷指南

資料庫坑點解決
OracleSID vs Service Name 混淆、時區不一致 (SESSIONTIMEZONE)、長字串截斷 (4000 字元限制)12c+ 用 Service Name、JVM 參數 -Duser.timezone=GMT+8、用 CLOB
SQL Server預設不支援大寫表名、datetime2 精度、鎖升級、死鎖頻發URL 加 ;sendStringParametersAsUnicode=false、索引優化、快照隔離級別
DB2Schema 概念強、預設大寫、限制條件名稱長度、權限體系複雜明確指定 currentSchema、DDL 時加引號、權限授予 GRANT
InformixINFORMIXSERVER 必須匹配、智能大對象 (BLOB/CLOB) 處理特殊、隔離級別預設 Dirty Read核對 sqlhosts、用 IfxBlob/IfxClob API、設定隔離級別 READ COMMITTED

驅動版本選擇建議

  • Oracle:ojdbc8.jar (JDK 8/11)、ojdbc11.jar (JDK 11+),從 Oracle 官網下載 (需帳號),或使用 Maven Central 的 com.oracle.database.jdbc:ojdbc8 (19c+)
  • SQL Server:優先 mssql-jdbc (官方),支援 Always Encrypted、Data Classification、Kerberos;jTDS 進入維護模式
  • DB2/Informix:必須從 IBM Fix Central 下載對應版本,注意 JCC 驅動版本與 DB2 伺服器版本相容性矩陣

總結

掌握四大商業資料庫的驅動類名、URL 格式、關鍵參數、驅動獲取途徑,能讓你在異構資料庫整合、遷移專案、多資料庫微服務中快速落地。核心原則:官方驅動優先、連線池標準化、參數化配置外部化、驗證查詢防失效、監控指標全覆蓋。將本文作為速查手冊,需要時複製適配,專注業務邏輯創新。

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