JDBC——入门知识【转】
1. 什么是JDBC:Java數(shù)據(jù)庫(kù)連接性(Java?Database Connectivity) API,允許用戶從Java應(yīng)用程序中訪問任何表格化數(shù)據(jù)源。
2. JDBC除了提供到更寬范圍的SQL數(shù)據(jù)庫(kù)的連接外,也允許用戶訪問其他的表格數(shù)據(jù)源,如:電子表格。
3. JDBC定義了一個(gè)底層的API,用來支持獨(dú)立于任何特定SQL實(shí)現(xiàn)的基本SQL功能。這意味著重要的是執(zhí)行原SQL語句,然后檢索它們的結(jié)果。
4. JDBC2.0 API包括兩個(gè)包:java.sql和jvax.sql。
5. JDBC3.0規(guī)范,于2001年10月發(fā)布,引入幾個(gè)特性,包括支持各種數(shù)據(jù)類型,附加的元數(shù)據(jù)能力,并增加了大量的接口。
6. JDBC的三種主要功能如下:
- ?建立與數(shù)據(jù)庫(kù)或其他表列數(shù)據(jù)源的連接;
- 向數(shù)據(jù)庫(kù)發(fā)送SQL命令
- 處理結(jié)果
7. 使用JDBC API訪問數(shù)據(jù)庫(kù),并處理結(jié)果集的主要步驟:
- 裝載JDBC驅(qū)動(dòng)程序
- 獲取數(shù)據(jù)庫(kù)連接
- 創(chuàng)建一條語句,執(zhí)行SQL環(huán)境(Statement)
- 執(zhí)行SQL查詢
- 從ResultSet中檢索數(shù)據(jù)
- 釋放資源
8. 裝載JDBC驅(qū)動(dòng)程序的幾種方式:
- Class.forName("驅(qū)動(dòng)類的全限定名");
- Driver d = new 驅(qū)動(dòng)類全限定名();
DriverManager.registerDriver(d); // 可以省略此句 - java -Djdbc.drivers = 驅(qū)動(dòng)類全限定名
此種方式是在啟動(dòng)JVM時(shí)就將驅(qū)動(dòng)類加載進(jìn)Java虛擬機(jī)
9. 獲取數(shù)據(jù)庫(kù)連接
????Connection conn = DriverManager.getConnection( url, user, password );
?
10. 創(chuàng)建執(zhí)行SQL環(huán)境
????Statement stmt = conn.createStatement();
?
11. 執(zhí)行SQL
????String sql = "select rownum, sysdate from dual";
????ResultSet rs = stmt.executeQuery(sql);
?
12. 處理結(jié)果集
????while(rs.next()) {
????????int i = rs.getInt(1);
????????Date d = rs.getDate(2);
????????System.out.println(i + " , " + d);
????}
????// 注意,JDBC結(jié)果集列是從“1”開始的,而其它地方如hibernate等都是從“0”開始的
?
13. 釋放資源
????if(rs != null) rs.close();
????if(stmt != null) stmt.close();
????if(conn != null) conn.close();
?
14. 常見的幾種數(shù)據(jù)庫(kù)連接方式:
- Oracle數(shù)據(jù)庫(kù):
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@[hostName]:[port]:[DB]"; - MySQL數(shù)據(jù)庫(kù):
Class.forName("");
String url = "jdbc:mysql://[hostName]:[port]/[DB]";
15. JDBC驅(qū)動(dòng)程序類型(4種)
- JDBC-ODBC橋 + ODBC驅(qū)動(dòng)程序
優(yōu)點(diǎn):
它提供連接幾乎所有平臺(tái)上的所有數(shù)據(jù)庫(kù)能力;
它可能是訪問低端桌面數(shù)據(jù)庫(kù)和應(yīng)用程序的唯一方式。
缺點(diǎn):
ODBC驅(qū)動(dòng)程序也必須加載到目標(biāo)機(jī)上;
JDBC和ODBC轉(zhuǎn)換影響性能。 - 本地API部分Java驅(qū)動(dòng)程序
優(yōu)點(diǎn):
比前一種驅(qū)動(dòng)程序快得多
缺點(diǎn):
需要在目標(biāo)機(jī)上有本地代碼;
它們依賴的Java本地接口在不同JVM的提供商間的實(shí)現(xiàn)不一致。 - JDBC-Net純Java驅(qū)動(dòng)程序
優(yōu)點(diǎn):
不要求客戶上有任何本地二進(jìn)制代碼;
不需要客戶安裝;
支持多個(gè)網(wǎng)絡(luò)選項(xiàng)。
缺點(diǎn):
由于網(wǎng)絡(luò)接口將體系結(jié)構(gòu)復(fù)雜化,因此很難建立。 - 本地協(xié)議純Java驅(qū)動(dòng)程序
目前的驅(qū)動(dòng)程序都是使用這種,比JDBC-ODBC橋快得多,100%Java驅(qū)動(dòng)程序,本地協(xié)議。
轉(zhuǎn)載于:https://www.cnblogs.com/Lxiaojiang/p/6708538.html
總結(jié)
以上是生活随笔為你收集整理的JDBC——入门知识【转】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。