日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

02-JDBC学习手册:JDBC编程步骤【重点重点】

發(fā)布時(shí)間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 02-JDBC学习手册:JDBC编程步骤【重点重点】 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 ?注冊(cè)一個(gè) Driver

注冊(cè)驅(qū)動(dòng)程序有三種方式:

方式一:Class.forName(“oracle.jdbc.driver.OracleDriver”);

JAVA 規(guī)范中明確規(guī)定:所有的驅(qū)動(dòng)程序必須在靜態(tài)初始化代碼塊中將驅(qū)動(dòng)注冊(cè)到驅(qū)動(dòng)程序管理器中。


方式二:Driver drv = new oracle.jdbc.driver.OracleDriver();

DriverManager.registerDriver(drv);


方式三:通過(guò)設(shè)置系統(tǒng)屬性 jdbc.drivers,編譯時(shí)在虛擬機(jī)中加載驅(qū)動(dòng).

javac xxx.java ( 要確保驅(qū)動(dòng)包在 classpath 里)
java –D jdbc.drivers=驅(qū)動(dòng)全名 類名
使用系統(tǒng)屬性名,加載驅(qū)動(dòng) -D 表示為系統(tǒng)屬性賦值
附 : mysql 的 Driver 的全名 com.mysql.jdbc.Driver

SQLServer 的 Driver 的全名 com.microsoft.jdbc.sqlserver.SQLServerDriver


  • JDBC 中驅(qū)動(dòng)加載的時(shí)序圖


以上是 JDBC 中驅(qū)動(dòng)加載的時(shí)序圖。時(shí)序圖主要有以下 7 個(gè)動(dòng)作:

1. 客戶調(diào)用 Class.forName(“XXXDriver”)加載驅(qū)動(dòng)。
2. 此時(shí)此驅(qū)動(dòng)類首先在其靜態(tài)語(yǔ)句塊中初始化此驅(qū)動(dòng)的實(shí)例。
3. 再向驅(qū)動(dòng)管理器注冊(cè)此驅(qū)動(dòng)。
4. 客戶向驅(qū)動(dòng)管理器 DriverManager 調(diào)用 getConnection 方法,
5. DriverManager 調(diào)用注冊(cè)到它上面的能夠理解此 URL 的驅(qū)動(dòng)建立一個(gè)連接,
6. 在該驅(qū)動(dòng)中建立一個(gè)連接,一般會(huì)創(chuàng)建一個(gè)對(duì)應(yīng)于數(shù)據(jù)庫(kù)提供商的 XXXConnection連接對(duì)象,
7. 驅(qū)動(dòng)向客戶返回此連接對(duì)象,不過(guò)在客戶調(diào)用的 getConnection 方法中返回的為一個(gè)java.sql.Connection 接口,而具體的驅(qū)動(dòng)返回一個(gè)實(shí)現(xiàn) java.sql.Connection 接口的具體類。



2 ?建立連接

Connection連接是通過(guò) DriverManager 的靜態(tài)方法 getConnection(.....)來(lái)得到的,這個(gè)方法的實(shí)質(zhì)是把參數(shù)傳到實(shí)際的 Driver 中的 connect()方法中來(lái)獲得數(shù)據(jù)庫(kù)連接的。
Oracle URL 的格式: jdbc:oracle:thin:(協(xié)議)@XXX.XXX.X.XXX:XXXX(IP 地址及端口號(hào)):XXXXXXX(所使用的庫(kù)名)
MySql URL 的寫法:例: jdbc:mysql://192.168.8.21:3306/test


3 ?獲得一個(gè) Statement ?對(duì)象

Statement stmt = conn.createStatement();

4 ?通過(guò) Statement ?執(zhí)行 l Sql ?語(yǔ)句

stmt.executeQuery(String sql); //返回一個(gè)查詢結(jié)果集。
stmt.executeUpdate(String sql); //返回值為 int 型,表示影響記錄的條數(shù)。
將 sql 語(yǔ)句通過(guò)連接發(fā)送到數(shù)據(jù)庫(kù)中執(zhí)行,以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。

5 ?處理結(jié)果集

使用 Connection 對(duì)象獲得一個(gè) Statement,Statement 中的 executeQuery(String sql) 方法可 以使用select語(yǔ)句查詢,并且返回一個(gè)結(jié)果集 ResultSet通過(guò)遍歷這個(gè)結(jié)果集,可以獲得select 語(yǔ)句的查尋結(jié)果,ResultSet 的 next()方法會(huì)操作一個(gè)游標(biāo)從第一條記錄的前面開(kāi)始讀取,直 到最后一條記錄。executeUpdate(String sql) 方法用于執(zhí)行 DDL 和 DML 語(yǔ)句,比如可以 update,delete 操作。


只有執(zhí)行 select 語(yǔ)句才有結(jié)果集返回。
例: Statement str=con.createStatement(); // 創(chuàng)建 Statement




6 關(guān)閉數(shù)據(jù)庫(kù)連接 關(guān)閉數(shù)據(jù)庫(kù)連接(釋放資源)

rs.close(); stmt.close(); con.close();
ResultSet Statement Connection ?是依次依賴的。
注意:要按先 ResultSet 結(jié)果集,后 Statement,最后 Connection 的順序關(guān)閉資源,因?yàn)?Statement 和 ResultSet 是需要連接時(shí)才可以使用的,所以在使用結(jié)束之后有可能其它的 Statement 還需要連接,所以不能現(xiàn)關(guān)閉 Connection。


圖形演繹編寫JDBC程序的一般過(guò)程







總結(jié)

以上是生活随笔為你收集整理的02-JDBC学习手册:JDBC编程步骤【重点重点】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。