JDBC全稱Java DataBase Connectivity / java數(shù)據(jù)庫(kù)連接,是使用java連接和操作數(shù)據(jù)庫(kù)的最基本驅(qū)動(dòng)工具。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了遂昌免費(fèi)建站歡迎大家使用!
sun公司的javasoft部門開發(fā)
最早的JDBC 1.0 隨JDK1.1發(fā)布
由一組用Java語言編寫的類和接口組成
用于執(zhí)行SQL語句的Java API
可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問
使用JDBC驅(qū)動(dòng)的最大的好處就是可以訪問不同的數(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)類:Class.forname(類名)
給出url、username、password
使用DriverManager類得到Connection對(duì)象

JDBC使用流程
導(dǎo)入jar包:驅(qū)動(dòng)jar包!
加載驅(qū)動(dòng)類:Class.forname(類名)
給出url、username、password
使用DriverManager類得到Connection對(duì)象
四大參數(shù):
driverClassName--com.MySQL.jdbc.Driver(MySql數(shù)據(jù)庫(kù))
url--jdbc:mysql://localhost:3306/數(shù)據(jù)庫(kù)名稱(MySql數(shù)據(jù)庫(kù))
Uesrname
Password
一、加載驅(qū)動(dòng)類(注冊(cè)驅(qū)動(dòng))
Class.forName("com.mysql.jdbc.Driver");
反射機(jī)制創(chuàng)建驅(qū)動(dòng)類對(duì)象
forName靜態(tài)方法:返回與給定字符串名稱的類或接口相關(guān)聯(lián)的類對(duì)象
com.mysql.jdbc.Driver
所有java.sql.driver的實(shí)現(xiàn)類都提供了static代碼塊,代碼塊中代碼把自己注冊(cè)到DriverManage中
(向 DriverManager 注冊(cè)給定驅(qū)動(dòng)程序: 新加載的驅(qū)動(dòng)程序類應(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()
}
}
?
二、獲取連接(通過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 語句并返回結(jié)果。
三、操作數(shù)據(jù)庫(kù)(CURD)
?
獲取Statement
Statement stmt = con.createStatement();
java.sql .Statement
用于執(zhí)行靜態(tài)SQL語句并返回其生成的結(jié)果的對(duì)象
在默認(rèn)情況下,同一時(shí)間每個(gè) Statement 對(duì)象在只能打開一個(gè) ResultSet 對(duì)象
?
??????2、執(zhí)行execute方法(executeUpdate、executeQuery)
?????????executeUpdate(String?sql)??????????執(zhí)行給定SQL 語句,該語句可能為?INSERT、UPDATE?或?DELETE?語句,或者不返回任何內(nèi)容的 SQL 語句(如 ? SQL DDL 語句)
? 方法返回值:
SQL語句執(zhí)行后影響的數(shù)據(jù)行數(shù)
(1) 對(duì)于 SQL 數(shù)據(jù)操作語言 (DML) 語句,返回行計(jì)數(shù)
(2) 對(duì)于什么都不返回的 SQL 語句,返回 0
? ? ? ? executeQuery(String?sql)
? ? ? ? ? 執(zhí)行給定的Query?語句語句,該語句返回單個(gè)ResultSet 對(duì)象(結(jié)果集)。
??ResultSet?
????表示數(shù)據(jù)庫(kù)結(jié)果集的數(shù)據(jù)表,通常通過執(zhí)行查詢數(shù)據(jù)庫(kù)的語句生成。
????需解析返回的結(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ì)象沒有下一行時(shí)返回 false,所以可以在 while 循環(huán)中使用它來迭代結(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
????
文章名稱:jdbc基本使用詳解
URL分享:http://chinadenli.net/article44/gdgjhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站制作、虛擬主機(jī)、品牌網(wǎng)站建設(shè)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)