JDBC概念
- JDBC (Java Database Connectivity) API探遵,即Java數(shù)據(jù)庫編程接口;
- 是一組標(biāo)準(zhǔn)的Java語言中的
接口和類
躲株,使用這些接口和類筋遭,Java客戶端程序可以訪問各種不同類型的數(shù)據(jù)庫
碉熄; - JDBC規(guī)范采用
接口和實(shí)現(xiàn)分離
的思想設(shè)計(jì)了Java數(shù)據(jù)庫編程的框架。 - 接口包含在
java.sql
及javax.sql
包中财骨,其中java.sql
屬于JavaSE
镐作,javax.sql
屬于JavaEE
。這些接口的實(shí)現(xiàn)類
叫做數(shù)據(jù)庫驅(qū)動(dòng)程序
隆箩,由數(shù)據(jù)庫的廠商
或其它的廠商或個(gè)人提供该贾。 - 為了使客戶端程序獨(dú)立于特定的數(shù)據(jù)庫驅(qū)動(dòng)程序,JDBC規(guī)范建議開發(fā)者使用基于
接口的編程方式
捌臊,即盡量使應(yīng)用僅依賴java.sql
及javax.sql
中的接口和類;
JDBC類結(jié)構(gòu)
-
DriverManager
:這個(gè)是一個(gè)實(shí)現(xiàn)類,它是一個(gè)工廠類,用來生產(chǎn)Driver對象的; - 這個(gè)類的結(jié)構(gòu)設(shè)計(jì)模式為工廠方法
-
Driver
:這是驅(qū)動(dòng)程序?qū)ο蟮慕涌?它指向一個(gè)實(shí)實(shí)在在的數(shù)據(jù)庫驅(qū)動(dòng)程序?qū)ο?/code>,那么這個(gè)數(shù)據(jù)庫驅(qū)動(dòng)程序?qū)ο笫菑哪睦飦淼哪?
-
DriverManager
工廠中有個(gè)方法:getDriver(String URL)
,通過這個(gè)方法可以得到驅(qū)動(dòng)程序?qū)ο?這個(gè)方法是在各個(gè)數(shù)據(jù)庫廠商按JDBC規(guī)范設(shè)計(jì)的數(shù)據(jù)庫驅(qū)動(dòng)程序包里的類中靜態(tài)實(shí)現(xiàn)的,也就是在靜態(tài)塊中杨蛋; -
Connection:
這個(gè)接口可以指向一個(gè)數(shù)據(jù)庫連接對象,通過DriverManager
工廠中的getConnection(String URL)
方法得到的; 每次調(diào)用該方法,都是創(chuàng)建一個(gè)新的數(shù)據(jù)庫連接理澎,很消耗資源 -
Statement:
用于執(zhí)行靜態(tài)的SQL語句的接口,通過Connection
中的createStatement
方法得到的; -
Resultset:
用于指向結(jié)果集對象的接口,結(jié)果集對象是通過Statement
中的execute
等方法得到的;
JAVA使用JDBC訪問數(shù)據(jù)庫的步驟:
- 得到數(shù)據(jù)庫驅(qū)動(dòng)程序
- 創(chuàng)建數(shù)據(jù)庫連接
- 執(zhí)行SQL語句
- 得到結(jié)果集
- 對結(jié)果集做相應(yīng)的處理(增,刪,改,查)
-
關(guān)閉資源:這里釋放的是DB中的資源