Connection 代表數據庫會話,包含 SQL 執行上下文與結果集。應用可持有多個連接 (同一或不同數據庫)。
標準方式:DriverManager.getConnection(url, user, pass)
DriverManager 遍歷已註冊驅動,調用 Driver.connect(url) 建立連接Driver.connect() 可指定驅動 (多驅動支持同一 URL 時)String url = "jdbc:odbc:wombat";
Connection con = DriverManager.getConnection(url, "oboy", "12Java");
標準三段式:jdbc:<subprotocol>:<subname>
jdbc - 固定協議前綴subprotocol - 驅動名或連接機制 (如 odbc、dcenaming、dbnet)subname - 識別數據庫的具體信息,語法由驅動定義jdbc:odbc:fred - ODBC 數據源 "fred"jdbc:dcenaming:accounts-payable - DCE 命名服務解析邏輯名jdbc:dbnet://wombat:356/fred - 網絡協議含主機/端口jdbc:odbc:[<datasource>][;<attr>=<value>]*
jdbc:odbc:wombat;CacheSize=20;ExtensionCase=LOWER
jdbc:odbc:qeora;UID=kgh;PWD=fooey
驅動開發商可向 jdbc@wombat.eng.sun.com 申請註冊唯一子協議名 (如 miracle),避免衝突。
| 類型 | 創建方法 | 用途 | 特點 |
|---|---|---|---|
| Statement | createStatement() | 簡單 SQL (無參數) | 每次編譯執行 |
| PreparedStatement | prepareStatement(sql) | 帶 IN 參數 SQL、頻繁執行的簡單 SQL | 預編譯、可設置參數、效率更高 |
| CallableStatement | prepareCall(sql) | 調用存儲過程 | 支持 IN/OUT/INOUT 參數 |
| 級別常量 | 含義 | 并发性能 |
|---|---|---|
| TRANSACTION_NONE | 不支持事務 | 最高 |
| TRANSACTION_READ_UNCOMMITTED | 允許臟讀 | 高 |
| TRANSACTION_READ_COMMITTED | 防止臟讀 | 中 |
| TRANSACTION_REPEATABLE_READ | 防止不可重複讀 | 低 |
| TRANSACTION_SERIALIZABLE | 完全串行化 | 最低 |
設置:con.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED)。級別越高、鎖開銷越大、併發度越低,需在一致性與性能間權衡。實際支持級別取決於底層 DBMS。