一。JDBC開(kāi)發(fā)步驟
1)注冊(cè)驅(qū)動(dòng):告訴 Java 我們需要去使用哪個(gè)數(shù)據(jù)庫(kù)?MySQL 和 Oracle
2)獲取連接對(duì)象:使用 JDBC 中提供的功能,獲取一個(gè) Connection 對(duì)象實(shí)例。
3)獲取執(zhí)行者平臺(tái):主要是獲取執(zhí)行 SQL 語(yǔ)句的載體,叫 Statement/preparedStatement 對(duì)象實(shí)例。
4)準(zhǔn)備 SQL 語(yǔ)句:將我們需要執(zhí)行 SQL 字符串語(yǔ)句寫(xiě)好。
5)執(zhí)行 SQL 語(yǔ)句:進(jìn)行增刪改查等相關(guān)操作,還需要接收返回值。
6)處理結(jié)果:多個(gè)學(xué)生 -> 集合,主要是“結(jié)果集”。
7)釋放資源:將完成后的對(duì)象關(guān)閉掉,節(jié)省性能。close() 方法進(jìn)行釋放。
二,JDBC 的環(huán)境搭建
1)添加數(shù)據(jù)庫(kù)的驅(qū)動(dòng)包
如果導(dǎo)入的是 8 版本,需要添加核心包和依賴包。
如果導(dǎo)入的的 5 版本,只需要添加核心包。
2)在工程中,新建一個(gè)叫 lib 的 folder(文件夾)
3)將上面找到的驅(qū)動(dòng)包,直接拖到 lib 路徑下。
4)選中 lib 包中所有的 jar 文件
右鍵 build path -> add to build path...
5)通過(guò)調(diào)用第三方包(也就是上面的驅(qū)動(dòng)包)中提供的實(shí)現(xiàn)類(lèi),來(lái)獲取與數(shù)據(jù)庫(kù)的連接對(duì)象,進(jìn)行數(shù)據(jù)庫(kù)操作。
三 。數(shù)據(jù)的封裝
1)先連接數(shù)據(jù)庫(kù),執(zhí)行SQL語(yǔ)句,獲取數(shù)據(jù)
rs.getString()
rs.getInt()
2)先得有一個(gè)實(shí)體類(lèi),比如 Student。JavaBean、POJO
- 實(shí)現(xiàn)了序列化接口
- 字段
- get、set 方法
- 構(gòu)造器(有參數(shù)、無(wú)參數(shù))
- toString 方法
3)將得到的數(shù)據(jù),通過(guò)實(shí)體類(lèi)的 setXxx() 方法設(shè)置回去對(duì)象中保存。
4)如果需要獲取數(shù)據(jù)的話,則通過(guò)調(diào)用實(shí)體類(lèi)的 getXxx() 方法即可。
框架:別人將一些常用的功能,封裝起來(lái),然后給其他開(kāi)發(fā)者調(diào)用。
四。常見(jiàn)問(wèn)題
1.JDBC 是啥?
JDBC 其實(shí)就是一個(gè)轉(zhuǎn)換接口,主要是我們寫(xiě)好java代碼,然后轉(zhuǎn)成SQL語(yǔ)句,去操作數(shù)據(jù)庫(kù),然后獲取了數(shù)據(jù)之后,接著如何封裝到JAVA類(lèi)中,然后通過(guò)“面向?qū)ο蟆钡乃季S去操作數(shù)據(jù)庫(kù)。
2.next()方法的作用?
作用:指針指向下一條記錄,有記錄(有值)返回true并把記錄內(nèi)容存入到對(duì)應(yīng)的對(duì)象中,也就是obj.next()的obj中。如果沒(méi)有返回false。
一般和ResultSet對(duì)象和while循環(huán)一起使用,去迭代結(jié)果集,并在循環(huán)中調(diào)用getXXX(intfieldIndex)/getXXX(String columnName)方法獲取字段值。
過(guò)程:ResultSet對(duì)象具有指向其當(dāng)前數(shù)據(jù)行的指針。開(kāi)始,指針被置于第一行。.next()方法將指針移動(dòng)到下一行,然后while循環(huán)迭代遍歷ResultSet對(duì)象。
五:Statement接口
●用于執(zhí)行靜態(tài)SQL語(yǔ)句并返回他所生成結(jié)果的對(duì)象。
●三種Statement類(lèi)
●Statement:由createStatement創(chuàng)建,用于發(fā)送簡(jiǎn)單的SQL語(yǔ)句。(不帶參數(shù)的)
●PreparedStatement:繼承自Statement接口,由prepareStatement創(chuàng)建,用于發(fā)送含有一個(gè)或多個(gè)輸入?yún)?shù)的SQL語(yǔ)句。PrepareStatement對(duì)象比Statement對(duì)象的效率更高,并且可以防止SQL注入。我們一般都用PreparedStatement。
●CallableStatement:繼承自PreparedStatement,由方法prePareCall創(chuàng)建,用于調(diào)用存儲(chǔ)過(guò)程。
●常用的Statement方法:
●execute():運(yùn)行語(yǔ)句,返回是否由結(jié)果集
●excuteQuery():運(yùn)行select語(yǔ)句,返回ResultSet結(jié)果集。
●executeUpdate():運(yùn)行insert,update,delete操作,返回更新的行數(shù)。
五:Params 計(jì)算機(jī)函數(shù)
params是一個(gè)計(jì)算機(jī)函數(shù),表示函數(shù)的參數(shù)是可變個(gè)數(shù)的,即可變的方法參數(shù),就像 delphl 里 writeln函數(shù)一樣,用于表示類(lèi)型相同,但參數(shù)數(shù)量不確定