- 搞定J2EE核心技術(shù)與企業(yè)應(yīng)用
- 常建功 王向華編著
- 1539字
- 2018-12-29 13:50:08
第7章 JDBC技術(shù)詳解
一般來講,現(xiàn)在的Java Web開發(fā)已經(jīng)很少直接使用JDBC進(jìn)行數(shù)據(jù)庫的相關(guān)操作了,一般都是自己對(duì)JDBC進(jìn)行封裝,或者直接使用開源的ORM產(chǎn)品,但萬變不離其宗,最終它們都離不開對(duì)JDBC的操作,因此了解JDBC的原理還是非常必要的。
本章首先介紹JDBC的基礎(chǔ)知識(shí),然后通過示例講解如何使用JDBC操作數(shù)據(jù)庫,最后講解事務(wù)管理和數(shù)據(jù)庫連接池的相關(guān)知識(shí)。
7.1 JDBC概述
JDBC(Java Database Connectivity,數(shù)據(jù)庫連接)是用來執(zhí)行SQL的Java API。開發(fā)人員可以使用這些標(biāo)準(zhǔn)API來連接和操作數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)庫應(yīng)用程序的開發(fā)。
7.1.1 JDBC相關(guān)概念
JDBC是Java的規(guī)范,考慮到規(guī)范的適用性,JDBC只提供了最直接的數(shù)據(jù)庫操作規(guī)范。在java.sql包中的類,是Java應(yīng)用程序用于連接數(shù)據(jù)庫的標(biāo)準(zhǔn)方法。
JDBC有以下3種產(chǎn)品組件。
● JDBC驅(qū)動(dòng)程序管理器:是JDBC體系結(jié)構(gòu)的支柱。它實(shí)際上很小,也很簡單,其主要作用是把Java應(yīng)用程序連接到正確的JDBC驅(qū)動(dòng)程序上,然后退出。
● JDBC驅(qū)動(dòng)程序測(cè)試工具包:為JDBC驅(qū)動(dòng)程序運(yùn)行開發(fā)人員開發(fā)的程序提供一定的可信度。只有通過JDBC驅(qū)動(dòng)程序測(cè)試的驅(qū)動(dòng)程序才被認(rèn)為是符合JDBC標(biāo)準(zhǔn)的。
● JDBC-ODBC橋:ODBC驅(qū)動(dòng)程序可被用做JDBC驅(qū)動(dòng)程序。它的實(shí)現(xiàn)為JDBC的快速發(fā)展提供了一條途徑,其長遠(yuǎn)目標(biāo)是提供一種訪問某些不常見的DBMS的方法。
目前比較常見的JDBC驅(qū)動(dòng)程序分為以下4類。
● JDBC-ODBC橋+ODBC驅(qū)動(dòng)程序:JDBC橋產(chǎn)品利用ODBC驅(qū)動(dòng)程序提供JDBC訪問。這種類型的驅(qū)動(dòng)程序最適合于企業(yè)網(wǎng),或者是用Java編寫的三層結(jié)構(gòu)的應(yīng)用程序服務(wù)器。
● 本地API:這種類型的驅(qū)動(dòng)程序把客戶機(jī)API上的JDBC調(diào)用轉(zhuǎn)換為Oracle、Sybase、Informix、DB2或其他DBMS的調(diào)用。
● JDBC網(wǎng)絡(luò)純Java驅(qū)動(dòng)程序:這種類型驅(qū)動(dòng)程序?qū)DBC轉(zhuǎn)換為與DBMS無關(guān)的網(wǎng)絡(luò)協(xié)議,之后這種協(xié)議又被某個(gè)服務(wù)器轉(zhuǎn)換為一種DBMS協(xié)議。這種網(wǎng)絡(luò)服務(wù)器中間件能夠?qū)⑺募僇ava客戶機(jī)連接到多種不同的數(shù)據(jù)庫上,所用的具體協(xié)議取決于提供者。這是最靈活的JDBC驅(qū)動(dòng)程序,有可能所有這種解決方案的提供者都提供適合于Intranet使用的產(chǎn)品。
● 本地協(xié)議純Java驅(qū)動(dòng)程序:這種類型的驅(qū)動(dòng)程序?qū)DBC調(diào)用直接轉(zhuǎn)換為DBMS所使用的網(wǎng)絡(luò)協(xié)議,這將允許從客戶機(jī)上直接調(diào)用DBMS服務(wù)器,是訪問Intranet的一個(gè)很實(shí)用的解決方法。由于許多這樣的協(xié)議都是專用的,因此數(shù)據(jù)庫提供者自己是主要來源。
JDBC驅(qū)動(dòng)程序中的第一種方式中出現(xiàn)了ODBC驅(qū)動(dòng)程序,什么是ODBC驅(qū)動(dòng)程序呢?ODBC(Openning DataBase Connection,開放式數(shù)據(jù)庫互連)驅(qū)動(dòng)程序是由微軟設(shè)計(jì)和開發(fā)的一種通用、標(biāo)準(zhǔn)的操作數(shù)據(jù)庫的API,可以說其是一種數(shù)據(jù)庫系統(tǒng)應(yīng)用程序的接口規(guī)范,該驅(qū)動(dòng)程序的工作原理如圖7.1所示。

圖7.1 ODBC的工作原理
ODBC驅(qū)動(dòng)程序的作用,是把應(yīng)用程序中操作數(shù)據(jù)庫的指令,轉(zhuǎn)換成某一種數(shù)據(jù)庫相關(guān)的數(shù)據(jù)庫指令,然后由具體相關(guān)的驅(qū)動(dòng)程序傳送給數(shù)據(jù)庫。在開發(fā)的時(shí)候,只需要面對(duì)統(tǒng)一格式的ODBC數(shù)據(jù)源即可,而不必針對(duì)各種不同數(shù)據(jù)庫做各種不同設(shè)計(jì)。
綜上所述,JDBC的功能如下:
● 提供多樣化的數(shù)據(jù)庫連接方法。
● 為各種不同的數(shù)據(jù)庫提供統(tǒng)一的操作界面。
7.1.2 配置JDBC驅(qū)動(dòng)程序
MySQL數(shù)據(jù)庫的JDBC驅(qū)動(dòng)程序稱為Connector/J,目前最新的版本為Connector/J 5.1.17。由于在3.1.7小節(jié)已經(jīng)詳細(xì)介紹過關(guān)于該驅(qū)動(dòng)程序的下載,所以該小節(jié)將介紹關(guān)于數(shù)據(jù)庫驅(qū)動(dòng)程序的配置方式。即如何在MyEclipse工具中添加、修改和刪除該驅(qū)動(dòng)程序的JRE包?具體步驟如下:
01 首先在MyEclipse的運(yùn)行界面中選擇“Window>Preferences”命令,出現(xiàn)如圖7.2所示的對(duì)話框。

圖7.2 “Preferences”對(duì)話框
02 在“Preferences”對(duì)話框的左側(cè)選擇“Java>Build Path”選項(xiàng),出現(xiàn)如圖7.3所示的列表。

圖7.3 User Libraries列表
03 在“User Libraries”界面中單擊“New”按鈕,在出現(xiàn)的如圖7.4所示的對(duì)話框中輸入名字,單擊“確定”按鈕就會(huì)新建一個(gè)User Libraries。

圖7.4 新建User Libraries
注意:不要選中復(fù)選框,否則該Libraries會(huì)成為系統(tǒng)默認(rèn)的Libraries。
接著在User Libraries列表中選擇“MySQL”選項(xiàng),單擊“Add JARs”按鈕把MySQL驅(qū)動(dòng)程序(第3章下載的MySQL驅(qū)動(dòng)程序Connector/J)添加進(jìn)來,最后效果如圖7.5所示。

圖7.5 添加JAR包
如果在項(xiàng)目中想使用該JAR包,可以用鼠標(biāo)右鍵單擊該項(xiàng)目,在彈出的快捷菜單中選擇如圖7.6所示的命令,這時(shí)就會(huì)出現(xiàn)如圖7.7所示的對(duì)話框。

圖7.6 “Add Libraries”命令

圖7.7 “Add Libraries”對(duì)話框
在“Add Libraries”對(duì)話框中,選擇“User Library”選項(xiàng),單擊“Next”按鈕就會(huì)進(jìn)入為“User Librarie”選擇具體內(nèi)容的對(duì)話框(如圖7.8所示),選擇剛添加的“MySQL”,單擊“Finish”按鈕,就把MySQL驅(qū)動(dòng)程序添加到了項(xiàng)目中。

圖7.8 選擇“MySQL”
當(dāng)MySQL驅(qū)動(dòng)程序添加到具體項(xiàng)目中后,在該項(xiàng)目中即可使用驅(qū)動(dòng)程序提供的API,這樣就可以連接和操作數(shù)據(jù)庫了。
- 智能傳感器技術(shù)與應(yīng)用
- UTM(統(tǒng)一威脅管理)技術(shù)概論
- Google App Inventor
- PyTorch深度學(xué)習(xí)實(shí)戰(zhàn)
- 視覺檢測(cè)技術(shù)及智能計(jì)算
- Creo Parametric 1.0中文版從入門到精通
- 大數(shù)據(jù)處理平臺(tái)
- Docker on Amazon Web Services
- INSTANT Heat Maps in R:How-to
- Hands-On Data Warehousing with Azure Data Factory
- Working with Linux:Quick Hacks for the Command Line
- 網(wǎng)絡(luò)脆弱性掃描產(chǎn)品原理及應(yīng)用
- 網(wǎng)絡(luò)信息安全項(xiàng)目教程
- 洞察大數(shù)據(jù)價(jià)值:SAS編程與數(shù)據(jù)挖掘
- ASP.NET 4.0 MVC敏捷開發(fā)給力起飛