一篇文章帶你搞定Java的數(shù)據(jù)庫訪問
一、前言
在應(yīng)用程序開發(fā)中,需要使用數(shù)據(jù)庫管理和存儲各種數(shù)據(jù)。在Java中,提供了一個JDBC技術(shù)(Java Database Connectivity,JDBC,Java數(shù)據(jù)庫連接),它的作用是連接數(shù)據(jù)庫并訪問。接下來小編帶大家一起來學(xué)習(xí)JDBC技術(shù)!
二、關(guān)系數(shù)據(jù)庫
1.目前,各種關(guān)系數(shù)據(jù)庫的操作基本使用SQL語言,SQL(Structured Query Language)是一個結(jié)構(gòu)化查詢語言。
2.常用的SQL語句,如下所示:
三、JDBC的概述
1.JDBC是一種執(zhí)行SQL語句的Java API。它由一組使用Java語言編寫的類和接口組成,使開發(fā)人員可以使用Java API來編寫數(shù)據(jù)庫應(yīng)用程序。
2.使用JDBC的技術(shù)向各種關(guān)系數(shù)據(jù)庫發(fā)送SQL語句就很方便,就不必為訪問Oracle數(shù)據(jù)庫專門寫一個程序,為訪問Sybase數(shù)據(jù)庫又專門寫一個程序,只需要JDBC API寫一個程序向相應(yīng)的數(shù)據(jù)庫發(fā)送SQL語句即可。開發(fā)人員使用Java語言和SQL語句編寫的數(shù)據(jù)庫應(yīng)用程序,可以在任何平臺上運(yùn)行。
3.JDBC驅(qū)動可以分為四種類型,包括了JDBC-ODBC橋、本地API驅(qū)動、網(wǎng)絡(luò)協(xié)議驅(qū)動、本地驅(qū)動。在后面會詳細(xì)的介紹這四種類型。
四、JDBC驅(qū)動類型
(一)JDBC-ODBC橋
JDBC-ODBC橋:通過驅(qū)動程序?qū)⑺械腏DBC調(diào)用傳給ODBC(Open Database Connectivity,ODBC,開放數(shù)據(jù)庫互連),然后ODBC調(diào)用本地數(shù)據(jù)庫接口訪問數(shù)據(jù)庫,這種執(zhí)行效率很低,它是不適合需要存儲大量數(shù)據(jù)的應(yīng)用。
如下圖所示:
1)首先SQL命令通過ODBC-Bridge傳給ODBC,再由ODBC連接數(shù)據(jù)庫并傳遞SQL命令到數(shù)據(jù)庫中。
2)ODBC接受數(shù)據(jù)庫返回結(jié)果,然后通過ODBC-Bridge返回的結(jié)果給應(yīng)用程序。
(二)本地API驅(qū)動
本地API驅(qū)動:通過JDBC-Native API橋接器的轉(zhuǎn)換,然后把客戶機(jī)API上的JDBC調(diào)用轉(zhuǎn)換成Oracle、 Sybase、Informix、DB2,最后存取數(shù)據(jù)庫。
如下圖所示:
1)首先應(yīng)用程序去調(diào)用JDBC Driver,然后JDBC Driver使用本地函數(shù)庫和數(shù)據(jù)庫進(jìn)行溝通。
2)本地函數(shù)庫返回執(zhí)行結(jié)果給JDBC Driver,最后JDBC Driver返回結(jié)果給應(yīng)用程序。
(三)網(wǎng)絡(luò)協(xié)議驅(qū)動
網(wǎng)絡(luò)協(xié)議驅(qū)動:把JDBC 轉(zhuǎn)換成與 DBMS 無關(guān)的網(wǎng)絡(luò)協(xié)議,該協(xié)議又給某個服務(wù)器轉(zhuǎn)換成一種DBMS的協(xié)議。在該網(wǎng)絡(luò)服務(wù)器有個中間件(middleware)可以把Java客戶機(jī)連接到不同的數(shù)據(jù)庫中,它所使用的具體協(xié)議來自提供者。
如下圖所示:
1)通過SQL命令使JDBC Driver傳給Middleware Server中,然后Middleware Server把SQL命令傳給數(shù)據(jù)庫,并和數(shù)據(jù)庫進(jìn)行溝通。
2)將結(jié)果返回給Middleware Server,最后JDBC Driver返回的結(jié)果給應(yīng)用程序。
(四)本地協(xié)議驅(qū)動
本地協(xié)議驅(qū)動:通過把JDBC調(diào)用轉(zhuǎn)換成具體的數(shù)據(jù)庫服務(wù)器,讓它可以接受網(wǎng)絡(luò)協(xié)議,然后允許客戶機(jī)上來調(diào)用DBMS服務(wù)器(數(shù)據(jù)庫管理系統(tǒng)(Database Management System,DBMS)),它是Intranet訪問最有效的一個解決方法。
如下圖所示:
1)首先應(yīng)用程序把SQL命令傳給JDBC Driver,然后JDBC Driver通過連接數(shù)據(jù)庫傳給SQL命令。
2)將執(zhí)行的結(jié)果返回給JDBC Driver,最后JDBC Driver返回結(jié)果給應(yīng)用程序。
五、總結(jié)
1.本文介紹了關(guān)系數(shù)據(jù)庫、JDBC的概述、JDBC驅(qū)動類型。
2.關(guān)系數(shù)據(jù)庫SQL是一種結(jié)構(gòu)化查詢語言,介紹它的常用SQL語句,例如增刪改查。
3.JDBC是一種執(zhí)行SQL語句的Java API。它由一組使用Java語言編寫的類和接口組成,使開發(fā)人員可以使用Java API來編寫數(shù)據(jù)庫應(yīng)用程序。
4.JDBC驅(qū)動類型分為四種,包括了JDBC-ODBC橋、本地API驅(qū)動、網(wǎng)絡(luò)協(xié)議驅(qū)動、本地驅(qū)動,介紹了每一種驅(qū)動類型的作用。
5.希望大家通過本文的學(xué)習(xí),對你有所幫助!