<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=Java%E8%B3%87%E6%96%99%E5%BA%AB%E9%80%A3%E6%8E%A5</id>
	<title>Java資料庫連接 - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.taigi.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=Java%E8%B3%87%E6%96%99%E5%BA%AB%E9%80%A3%E6%8E%A5"/>
	<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=Java%E8%B3%87%E6%96%99%E5%BA%AB%E9%80%A3%E6%8E%A5&amp;action=history"/>
	<updated>2026-04-13T08:19:17Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.taigi.ima.org.tw/w/index.php?title=Java%E8%B3%87%E6%96%99%E5%BA%AB%E9%80%A3%E6%8E%A5&amp;diff=373238&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.taigi.ima.org.tw/w/index.php?title=Java%E8%B3%87%E6%96%99%E5%BA%AB%E9%80%A3%E6%8E%A5&amp;diff=373238&amp;oldid=prev"/>
		<updated>2025-08-22T05:02:24Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Java 資料庫連接&amp;#039;&amp;#039;&amp;#039;，（&amp;#039;&amp;#039;&amp;#039;Java Database Connectivity&amp;#039;&amp;#039;&amp;#039;，簡稱&amp;#039;&amp;#039;&amp;#039;JDBC&amp;#039;&amp;#039;&amp;#039;）是 Java 語言中央用來規範客戶捀程式按怎來存取資料庫的應用程式介面，提供了諸如查詢佮更新的資料庫內底資料的方法。JDBC 嘛是啦 Sun Microsystems 的商標。JDBC 是面向關係型資料庫的。&lt;br /&gt;
&lt;br /&gt;
佇咧 J 二 SE 中，提供一个稱為 JDBC-ODBC 橋（JDBC-ODBC Bridge）的 API。通過 ODBC，JDBC-ODBC 橋驅動程式會當存取所有支援 ODBC 的關係型資料庫。佮 JDBC API 無仝的是，這个驅動程式並毋是由著 Java 磅落來是由機器碼（machine code）編寫，並且毋是開放原始碼的。&lt;br /&gt;
&lt;br /&gt;
==驅動程式類型==&lt;br /&gt;
&lt;br /&gt;
JDBC 驅動程式共分四種類型：&lt;br /&gt;
&lt;br /&gt;
===類型一：JDBC-ODBC 橋===&lt;br /&gt;
&lt;br /&gt;
這種類型的驅動共所有的 JDBC 彼个呼叫傳遞予 ODBC，閣予後者呼叫資料庫本地驅動程式碼（也就是資料庫廠商提供的資料庫操作二進位程式碼庫，比如講 Oracle 中的 oci . dll）。&lt;br /&gt;
&lt;br /&gt;
優點：&lt;br /&gt;
&lt;br /&gt;
* 只要有對應的 ODBC 驅動（大部份的資料庫廠商攏會提供）， 差不多會當存取所有的資料庫。&lt;br /&gt;
&lt;br /&gt;
缺點：&lt;br /&gt;
&lt;br /&gt;
* 執行效率較低，無適合大數據量存取的應用；&lt;br /&gt;
* 因為需要客戶捀預裝對應的 ODBC 驅動，無合 Internet / Intranet 應用。&lt;br /&gt;
&lt;br /&gt;
===類型二：在地 API 驅動===&lt;br /&gt;
&lt;br /&gt;
這種類型的驅動通過客戶捀載入資料庫廠商提供的本地程式碼庫（C／C + + 等）來存取資料庫，佇驅動程式內底包括矣 Java 程式碼。&lt;br /&gt;
&lt;br /&gt;
優點：&lt;br /&gt;
&lt;br /&gt;
* 速度強欲第一類驅動（毋過猶是比袂著第三、第四類驅動）。&lt;br /&gt;
&lt;br /&gt;
缺點&lt;br /&gt;
&lt;br /&gt;
* 因為需要客戶捀預裝對應的資料庫廠商程式碼庫，猶原無適合 Internet / Intranet 應用。&lt;br /&gt;
&lt;br /&gt;
===類型三：網路協定驅動===&lt;br /&gt;
&lt;br /&gt;
這種類型的驅動予客戶捀提供一个網路 API，客戶捀起來的 JDBC 驅動程式使用通訊端（Socket）來呼籲侍服器上的中介軟體程式，者咧共請求轉化做所需要的具體 API 搧叫。&lt;br /&gt;
&lt;br /&gt;
優點：&lt;br /&gt;
&lt;br /&gt;
* 無需要佇客戶捀載入資料庫廠商提供的程式碼庫，單位驅動的程式會當對濟資料庫來進行存取，可延伸性較好。&lt;br /&gt;
&lt;br /&gt;
缺點：&lt;br /&gt;
&lt;br /&gt;
* 佇中介軟體層猶原需對最終資料進行組態；&lt;br /&gt;
* 因為加出一个中介軟體層，速度不如第四類驅動程式。&lt;br /&gt;
&lt;br /&gt;
===類型四：本地協定驅動===&lt;br /&gt;
&lt;br /&gt;
這種類型的驅動使用 Socket，直接佇客戶捀佮資料庫通批。&lt;br /&gt;
&lt;br /&gt;
優點：&lt;br /&gt;
&lt;br /&gt;
* 存取速度上緊；&lt;br /&gt;
* 這是上直接、上蓋純粹的 Java 實現。&lt;br /&gt;
&lt;br /&gt;
缺點：&lt;br /&gt;
&lt;br /&gt;
* 會用得干焦資料庫廠商家己才會用得提供這種類型的 JDBC 驅動。&lt;br /&gt;
* 需要針對無仝的資料庫使用無仝的驅動程式。&lt;br /&gt;
&lt;br /&gt;
==API 概述==&lt;br /&gt;
&lt;br /&gt;
_ 參看 Java SE 以及 java . sql API _&lt;br /&gt;
&lt;br /&gt;
JDBC API 主要是欲位於 JDK 中的 java . sql 包著（了後擴充的內容佇咧 javax . sql 包著）， 主要包括講（斜體代表介面，需要趕動程式提供者來具體實現）：&lt;br /&gt;
&lt;br /&gt;
* DriverManager：負責載入各種無仝趕動的程式（Driver）， 並無仝款的請求，向呼叫者返回相應的資料庫連接（Connection）。&lt;br /&gt;
* _ Driver _：驅動程式，會共自身載入到 DriverManager 中去，閣處理相應的請求並且倒轉去相應的資料庫連接（Connection）。&lt;br /&gt;
* _ Connection _：資料庫連接，負責進行佮資料庫間的通訊，SQL 執行以及事務處理攏是佇咧某一个特定 Connection 環境中進行的。會當產生用執行 SQL 的 Statement。&lt;br /&gt;
* _ Statement _：用以執行 SQL 查詢猶閣更新（針對靜態 SQL 語句佮單擺執行）。&lt;br /&gt;
* _ PreparedStatement _：用以執行包含動態參數的 SQL 查詢猶閣更新（咧侍服器捀編譯，允准重複執行以提高效率）。&lt;br /&gt;
* _ CallableStatement _：用呼叫資料庫內底的儲存程序。&lt;br /&gt;
* SQLException：代表佇資料庫連接的建立佮關係佮關係 SQL 語句的執行過程中發生了例外的情況（即錯誤）。&lt;br /&gt;
&lt;br /&gt;
===資料類型的對映===&lt;br /&gt;
&lt;br /&gt;
註：這款類型匹配毋是強制性標準，特定的 JDBC 廠商可能會改變這種類型匹配。比如講 Oracle 中的 DATE 類型是包括時分秒，而且 java . sql . Date 干焦支援年月日。&lt;br /&gt;
&lt;br /&gt;
==例==&lt;br /&gt;
&lt;br /&gt;
利用 Class . forName ( ) 方法來載入 JDBC 驅動程式（_ Driver _）至 DriverManager：&lt;br /&gt;
&lt;br /&gt;
然後，對 DriverManager 中，通過 JDBC URL，使用者名稱，密碼來取相應的資料庫連接（_ Connection _）：&lt;br /&gt;
&lt;br /&gt;
無仝的 JDBC 驅動程式的 URL 是無仝款的，伊永遠以「jdbc：」 開始，毋過後壁的內容照驅動程式類型無仝而各異。佇咧揣 _ Connection _ 了後，就會當建立 _ Statement _ 用以執行 SQL 語句。下底是一个插入去（INSERT）的例：&lt;br /&gt;
&lt;br /&gt;
查詢（SELECT）的結果囥佇結果集（_ ResultSet _）中，會當照順序依次存取：&lt;br /&gt;
&lt;br /&gt;
猶毋過，通常，Java 程式設計師閣較傾向著使用 _ PreparedStatement _。下跤的例使用頂例中的 conn 東西：&lt;br /&gt;
&lt;br /&gt;
抑若資料庫操作失敗，JDBC 將擲一个 SQLException。一般來講，這種類異常真少會當恢復，唯一會當做的就是盡量詳細的列印異常日記。推薦的做法是將 SQLException 翻譯成應用程式領域相關的異常（非強制處理異常）並且最後回滾的資料庫閣通知使用者。&lt;br /&gt;
&lt;br /&gt;
一个資料庫的事務代碼如下：&lt;br /&gt;
&lt;br /&gt;
==參考文獻==&lt;br /&gt;
&lt;br /&gt;
==外部連結==&lt;br /&gt;
&lt;br /&gt;
* Sun 提供的 JDBC 驅動程式佮其供應商列表&lt;br /&gt;
* Sun 提供的教程&lt;br /&gt;
* Sun Java 二一孵四 . 二 API&lt;br /&gt;
* 一个訂單系統的原形&lt;br /&gt;
* DBAccessor : JDBC 資料庫存取封裝類&lt;br /&gt;
* 開源的 JDBC 驅動程式列表&lt;br /&gt;
* http : / / blog . csdn . net / cho 三 en 一 / article / details / 五千兩百六十九鋪五千八百空八&lt;br /&gt;
&lt;br /&gt;
==參見==&lt;br /&gt;
&lt;br /&gt;
* 資料庫&lt;br /&gt;
* Java&lt;br /&gt;
* J 二 SE&lt;br /&gt;
* J 二 EE&lt;br /&gt;
* ODBC&lt;br /&gt;
* ADO&lt;br /&gt;
* ADO . NET&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>