JDBC全稱(chēng)Java DataBase Connectivity / java數(shù)據(jù)庫(kù)連接,是使用java連接和操作數(shù)據(jù)庫(kù)的最基本驅(qū)動(dòng)工具。
成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè),成都做網(wǎng)站公司-創(chuàng)新互聯(lián)已向上千企業(yè)提供了,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)絡(luò)營(yíng)銷(xiāo)等服務(wù)!設(shè)計(jì)與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗(yàn),合理的價(jià)格為您打造企業(yè)品質(zhì)網(wǎng)站。sun公司的javasoft部門(mén)開(kāi)發(fā)
最早的JDBC 1.0 隨JDK1.1發(fā)布
由一組用Java語(yǔ)言編寫(xiě)的類(lèi)和接口組成
用于執(zhí)行SQL語(yǔ)句的Java API
可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn)
使用JDBC驅(qū)動(dòng)的大的好處就是可以訪問(wèn)不同的數(shù)據(jù)庫(kù),因?yàn)椴煌瑪?shù)據(jù)庫(kù)本身提供不同的驅(qū)動(dòng)以迎合JDBC驅(qū)動(dòng)
流程
導(dǎo)入jar包:驅(qū)動(dòng)jar包!
加載驅(qū)動(dòng)類(lèi):Class.forname(類(lèi)名)
給出url、username、password
使用DriverManager類(lèi)得到Connection對(duì)象
JDBC使用流程
導(dǎo)入jar包:驅(qū)動(dòng)jar包!
加載驅(qū)動(dòng)類(lèi):Class.forname(類(lèi)名)
給出url、username、password
使用DriverManager類(lèi)得到Connection對(duì)象
四大參數(shù):
driverClassName--com.mysql.jdbc.Driver(MySql數(shù)據(jù)庫(kù))
url--jdbc:mysql://localhost:3306/數(shù)據(jù)庫(kù)名稱(chēng)(MySql數(shù)據(jù)庫(kù))
Uesrname
Password
一、加載驅(qū)動(dòng)類(lèi)(注冊(cè)驅(qū)動(dòng))
Class.forName("com.mysql.jdbc.Driver");
反射機(jī)制創(chuàng)建驅(qū)動(dòng)類(lèi)對(duì)象
forName靜態(tài)方法:返回與給定字符串名稱(chēng)的類(lèi)或接口相關(guān)聯(lián)的類(lèi)對(duì)象
com.mysql.jdbc.Driver
所有java.sql.driver的實(shí)現(xiàn)類(lèi)都提供了static代碼塊,代碼塊中代碼把自己注冊(cè)到DriverManage中
(向 DriverManager 注冊(cè)給定驅(qū)動(dòng)程序: 新加載的驅(qū)動(dòng)程序類(lèi)應(yīng)該調(diào)用 registerDriver方法讓 DriverManager 知道自己)
public class Driver extends NonRegisteringDriver implements java.sql.Driver {
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
public Driver() throws SQLException {
// Required for Class.forName().newInstance()
}
}
二、獲取連接(通過(guò)DBUrl、UserName、PassWord)
Connection conn =DriverManager.getConnection( DB_URL, USER, PASS );
java.sql.DriverManager
用于管理一組 JDBC 驅(qū)動(dòng)程序的基本服務(wù)
注意: JDBC 2.0 API中新增的DataSource接口提供了另一種連接到數(shù)據(jù)源的方法。 使用DataSource對(duì)象是連接到數(shù)據(jù)源的選方法。
java.sql.Connection
與特定數(shù)據(jù)庫(kù)的連接(會(huì)話)。在連接上下文中執(zhí)行 SQL 語(yǔ)句并返回結(jié)果。
三、操作數(shù)據(jù)庫(kù)(CURD)
獲取Statement
Statement stmt = con.createStatement();
java.sql .Statement
用于執(zhí)行靜態(tài)SQL語(yǔ)句并返回其生成的結(jié)果的對(duì)象
在默認(rèn)情況下,同一時(shí)間每個(gè) Statement 對(duì)象在只能打開(kāi)一個(gè) ResultSet 對(duì)象
2、執(zhí)行execute方法(executeUpdate、executeQuery)
?????????executeUpdate(String?sql)執(zhí)行給定SQL 語(yǔ)句,該語(yǔ)句可能為?INSERT、UPDATE?或?DELETE?語(yǔ)句,或者不返回任何內(nèi)容的 SQL 語(yǔ)句(如 ? SQL DDL 語(yǔ)句)
方法返回值:
SQL語(yǔ)句執(zhí)行后影響的數(shù)據(jù)行數(shù)
(1) 對(duì)于 SQL 數(shù)據(jù)操作語(yǔ)言 (DML) 語(yǔ)句,返回行計(jì)數(shù)
(2) 對(duì)于什么都不返回的 SQL 語(yǔ)句,返回 0
? ? ? executeQuery(String?sql)
執(zhí)行給定的Query?語(yǔ)句語(yǔ)句,該語(yǔ)句返回單個(gè)ResultSet 對(duì)象(結(jié)果集)。
ResultSet?
?表示數(shù)據(jù)庫(kù)結(jié)果集的數(shù)據(jù)表,通常通過(guò)執(zhí)行查詢數(shù)據(jù)庫(kù)的語(yǔ)句生成。
需解析返回的結(jié)果集
? ? 3、解析ResultSet對(duì)象(一般查詢操作才存在)
ResoultSet對(duì)象中的數(shù)據(jù)存儲(chǔ)格式:二維表格
遍歷結(jié)果集方法:
ResultSet 對(duì)象具有指向其當(dāng)前數(shù)據(jù)行的行光標(biāo)。
最初,光標(biāo)被置于第一行之前。
next 方法將光標(biāo)移動(dòng)到下一行;因?yàn)樵摲椒ㄔ?ResultSet 對(duì)象沒(méi)有下一行時(shí)返回 false,所以可以在 while 循環(huán)中使用它來(lái)迭代結(jié)果集
? ? ?next()
將光標(biāo)從當(dāng)前位置向下移一行。
? ? ?兩種獲取列值方法:
1、列編號(hào)
? ?getInt(int?columnIndex)
2、列名
getInt(String?columnLabel)
4、關(guān)閉連接(Connection、Statement、ResultSet)?????
connection.close();——必須關(guān)閉
statement.close();
resultset.close();
節(jié)省資源
在不使用數(shù)據(jù)庫(kù)連接池情況下,connection.close()關(guān)閉時(shí),statement和resoultset也會(huì)隨之自動(dòng)關(guān)閉
但是如果使用了數(shù)據(jù)庫(kù)連接池,connection.close()不會(huì)關(guān)閉連接,只會(huì)歸還給連接池,statement和resoultset對(duì)象就會(huì)不斷持有
所以最好將ResultSet、Statement、Connection按順序close
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。