MySQL JDBC架構(gòu)是Java和MySQL之間通信的重要橋梁。Java是一種解釋型語言,需要能夠與關(guān)系數(shù)據(jù)庫交互,MySQL JDBC允許Java程序與MySQL數(shù)據(jù)庫建立連接,使得Java程序可以訪問MySQL數(shù)據(jù)庫中的數(shù)據(jù)。MySQL JDBC架構(gòu)包含以下幾個(gè)主要組件:
1. JDBC驅(qū)動(dòng)程序(JDBC Driver):
JDBC驅(qū)動(dòng)程序(JDBC Driver)是與特定數(shù)據(jù)庫通信的Java API。MySQL官網(wǎng)提供了兩種類型的JDBC驅(qū)動(dòng)程序: ? Connector/J:MySQL官方提供的JDBC驅(qū)動(dòng)程序 ? MariaDB Connector/J:為MariaDB數(shù)據(jù)庫提供的JDBC驅(qū)動(dòng)程序 Connector/J是MySQL中最常用的JDBC驅(qū)動(dòng)程序。程序員一般需要在類路徑中添加JDBC驅(qū)動(dòng)Jar文件,以便程序可以正確地加載驅(qū)動(dòng)程序并使用它建立與MySQL數(shù)據(jù)庫的連接。
2. Connection:
Connection是Java程序和MySQL數(shù)據(jù)庫之間建立的一種連接。基本上,Java程序通過JDBC驅(qū)動(dòng)程序發(fā)送SQL語句和DML語句(例如SELECT,UPDATE,INSERT和DELETE),然后MySQL數(shù)據(jù)庫返回這些SQL語句的結(jié)果。Java程序使用Connection對(duì)象來與MySQL數(shù)據(jù)庫建立連接,并且可以使用該連接執(zhí)行SQL語句。
3. Statement:
Statement是一種用于向MySQL數(shù)據(jù)庫服務(wù)器發(fā)送SQL語句的Java對(duì)象。當(dāng)創(chuàng)建Connection對(duì)象后,Java程序?qū)?huì)創(chuàng)建Statement對(duì)象,并用它向MySQL數(shù)據(jù)庫發(fā)送SQL查詢語句。
4. ResultSet:
ResultSet對(duì)象是由執(zhí)行查詢產(chǎn)生的Java對(duì)象。ResultSet對(duì)象包含在Java程序中獲取的數(shù)據(jù)行和列。使用ResultSet對(duì)象,Java程序可以遍歷結(jié)果集,將結(jié)果集中的數(shù)據(jù)提取為Java對(duì)象對(duì)應(yīng)的類型。
5. Prepared Statement:
Prepared Statement是一種預(yù)編譯的SQL語句。在使用PreparedStatement的情況下,SQL語句在第一次執(zhí)行時(shí)會(huì)被JDBC Track緩存,然后可以由結(jié)果集進(jìn)行添加。PreparedStatement的好處是可以保證安全且能夠提高性能,因?yàn)橹恍枰獙⒚總€(gè)參數(shù)傳遞一次,這意味著服務(wù)器可以自己緩存更多的執(zhí)行計(jì)劃,從而避免了重新編譯每個(gè)SQL語句。
在所有這些JDBC組件中,Connection對(duì)象是最重要的對(duì)象,因?yàn)樗桥cMySQL數(shù)據(jù)庫建立連接的對(duì)象。Statement和ResultSet對(duì)象是通過Connection對(duì)象獲取的,因此在每次查詢之前,Java程序必須使用Connection對(duì)象創(chuàng)建Statement對(duì)象,這個(gè)對(duì)象可以執(zhí)行查詢,然后使用其返回的ResultSet對(duì)象從MySQL數(shù)據(jù)庫中檢索數(shù)據(jù)。