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

JDBC 連接詳解:DriverManager 機制、JDBC URL 語法、三類 Statement 用途與事務隔離級別配置

     編輯:Java 相關知識

2.1 連接概述

Connection 代表數據庫會話,包含 SQL 執行上下文與結果集。應用可持有多個連接 (同一或不同數據庫)。

2.1.1 打開連接

標準方式:DriverManager.getConnection(url, user, pass)

  • DriverManager 遍歷已註冊驅動,調用 Driver.connect(url) 建立連接
  • 繞過管理層直接調用 Driver.connect() 可指定驅動 (多驅動支持同一 URL 時)
String url = "jdbc:odbc:wombat";
Connection con = DriverManager.getConnection(url, "oboy", "12Java");

2.1.2 JDBC URL 語法

標準三段式:jdbc:<subprotocol>:<subname>

  • jdbc - 固定協議前綴
  • subprotocol - 驅動名或連接機制 (如 odbc、dcenaming、dbnet)
  • subname - 識別數據庫的具體信息,語法由驅動定義

子協議示例

  • jdbc:odbc:fred - ODBC 數據源 "fred"
  • jdbc:dcenaming:accounts-payable - DCE 命名服務解析邏輯名
  • jdbc:dbnet://wombat:356/fred - 網絡協議含主機/端口

2.1.4 odbc 子協議特殊語法

jdbc:odbc:[<datasource>][;<attr>=<value>]*
jdbc:odbc:wombat;CacheSize=20;ExtensionCase=LOWER
jdbc:odbc:qeora;UID=kgh;PWD=fooey

2.1.5 子協議註冊

驅動開發商可向 jdbc@wombat.eng.sun.com 申請註冊唯一子協議名 (如 miracle),避免衝突。

2.1.6 發送 SQL 語句 - 三類 Statement

2.1.7 事務管理

  • 默認 自動提交:每條語句隱式提交
  • con.setAutoCommit(false) 開啟手動事務
  • con.commit() 提交 / con.rollback() 回滾
  • 事務結束後自動開始新事務

2.1.8 事務隔離級別

類型創建方法用途特點
StatementcreateStatement()簡單 SQL (無參數)每次編譯執行
PreparedStatementprepareStatement(sql)帶 IN 參數 SQL、頻繁執行的簡單 SQL預編譯、可設置參數、效率更高
CallableStatementprepareCall(sql)調用存儲過程支持 IN/OUT/INOUT 參數
級別常量含義并发性能
TRANSACTION_NONE不支持事務最高
TRANSACTION_READ_UNCOMMITTED允許臟讀高
TRANSACTION_READ_COMMITTED防止臟讀中
TRANSACTION_REPEATABLE_READ防止不可重複讀低
TRANSACTION_SERIALIZABLE完全串行化最低

設置:con.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED)。級別越高、鎖開銷越大、併發度越低,需在一致性與性能間權衡。實際支持級別取決於底層 DBMS。

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