溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JDBC 技術(shù)詳解1

發(fā)布時間:2020-07-29 09:46:48 來源:網(wǎng)絡(luò) 閱讀:231 作者:wx5cdcd12b27a64 欄目:MySQL數(shù)據(jù)庫

jdbc是數(shù)據(jù)庫中十分重要的一項技術(shù),是我們在做項目最常用的一類接口實現(xiàn)類,

這里就個朋友們簡單詳細(xì)的聊一下。

首先我們應(yīng)該知道什么是jdbc

JDBC(JavaDataBaseConnectivity)java 數(shù)據(jù)庫連接 , 是 JavaEE 平臺下的技術(shù)規(guī)范 ,定義了在 Java 語言中連接數(shù)據(jù),執(zhí)行 SQL 語句的標(biāo)準(zhǔn) , 可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問。

但想要訪問數(shù)據(jù)庫就必須使用數(shù)據(jù)庫驅(qū)動,

那么什么是數(shù)據(jù)庫驅(qū)動呢?
數(shù)據(jù)庫廠商對 JDBC 規(guī)范的具體實現(xiàn) ,不同數(shù)據(jù)產(chǎn)品的數(shù)據(jù)庫驅(qū)動名字有差異 ,在程序中需要依賴數(shù)據(jù)庫驅(qū)動來完成對數(shù)據(jù)庫的操作。

JDBC 技術(shù)詳解1

我們現(xiàn)在使用的是JDBC3.0 標(biāo)準(zhǔn)

其中常用的接口有

1 Driver 接口
Driver 接口的作用是來定義數(shù)據(jù)庫驅(qū)動對象應(yīng)該具備的一些能力。比如與數(shù)據(jù)庫建立連 接的方法的定義所有支持 java 語言連接的數(shù)據(jù)庫都實現(xiàn)了該接口,實現(xiàn)該接口的類我們稱 之為數(shù)據(jù)庫驅(qū)動類。在程序中要連接數(shù)據(jù)庫,必須先通過 JDK 的反射機(jī)制加載數(shù)據(jù)庫驅(qū)動 類,將其實例化。不同的數(shù)據(jù)庫驅(qū)動類的類名有區(qū)別。 加載 MySql 驅(qū)動:Class.forName("com.mysql.jdbc.Driver"); 加載 Oracle 驅(qū)動:Class.forName("oracle.jdbc.driver.OracleDriver");

DriverManager 類

DriverManager

通過實例化的數(shù)據(jù)庫驅(qū)動對象,能夠建立應(yīng)用程序與數(shù)據(jù)庫之間建立連 接。并返回 Connection 接口類型的數(shù)據(jù)庫連接對象。

常用方法

?getConnection(StringjdbcUrl,Stringuser,Stringpassword)

該方法通過訪問數(shù)據(jù)庫的 url、用戶以及密碼,返回對應(yīng)的數(shù)據(jù)庫的 Connection 對象。

JDBCURL
與數(shù)據(jù)庫連接時,用來連接到指定數(shù)據(jù)庫標(biāo)識符。在 URL 中包括了該數(shù)據(jù)庫的類型、 地址、端口、庫名稱等信息。不同品牌數(shù)據(jù)庫的連接 URL 不同。

Connection 接口

Connection 與數(shù)據(jù)庫的連接(會話)對象。我們可以通過該對象執(zhí)行 sql 語句并返回結(jié)

果。

連接 MySql 數(shù)據(jù)庫: Connection conn = DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password"); 連接 Oracle 數(shù)據(jù)庫:
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@host:port:database", "user","password"); 連接 SqlServer 數(shù)據(jù)庫: Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://host:port; DatabaseName=database","user","password");

常用方法
?createStatement():創(chuàng)建向數(shù)據(jù)庫發(fā)送 sql 的 Statement 接口類型的對象。
?preparedStatement(sql) :創(chuàng)建向數(shù)據(jù)庫發(fā)送預(yù)編譯 sql 的 PrepareSatement 接口類型的

對象。
?prepareCall(sql):創(chuàng)建執(zhí)行存儲過程的 CallableStatement 接口類型的對象。
?setAutoCommit(booleanautoCommit):設(shè)置事務(wù)是否自動提交。 ?commit() :在鏈接上提交事務(wù)。
?rollback() :在此鏈接上回滾事務(wù)。

Statement 接口
用于執(zhí)行靜態(tài) SQL 語句并返回它所生成結(jié)果的對象。 由 createStatement 創(chuàng)建,用于發(fā)送簡單的 SQL 語句(不支持動態(tài)綁定)。

常用方法

?execute(String sql):執(zhí)行參數(shù)中的 SQL,返回是否有結(jié)果集。 ?executeQuery(Stringsql):運行 select 語句,返回 ResultSet 結(jié)果集。 ?executeUpdate(Stringsql):運行 insert/update/delete 操作,返回更新的行數(shù)。
?addBatch(Stringsql) :把多條 sql 語句放到一個批處理中。 ?executeBatch():向數(shù)據(jù)庫發(fā)送一批 sql 語句執(zhí)行。

PreparedStatement 接口
繼承自 Statement 接口,由 preparedStatement 創(chuàng)建,用于發(fā)送含有一個或多個參數(shù)的 SQL 語句。PreparedStatement 對象比 Statement 對象的效率更高,并且可以防止 SQL 注入,所以 我們一般都使用 PreparedStatement。

常用方法

?addBatch()把當(dāng)前 sql 語句加入到一個批處理中。
?execute() 執(zhí)行當(dāng)前 SQL,返回個 boolean 值
?executeUpdate()運行 insert/update/delete 操作,返回更新的行數(shù)。
?executeQuery() 執(zhí)行當(dāng)前的查詢,返回一個結(jié)果集對象
?setDate(intparameterIndex,Date x)向當(dāng)前SQL語句中的指定位置綁定一個java.sql.Date

值。

? setDouble(int parameterIndex, double x)向當(dāng)前 SQL 語句中的指定位置綁定一個 double

?setFloat(intparameterIndex,floatx)向當(dāng)前 SQL 語句中的指定位置綁定一個 float 值
?setInt(intparameterIndex,intx)向當(dāng)前 SQL 語句中的指定位置綁定一個 int 值
?setString(intparameterIndex,Stringx)向當(dāng)前 SQL 語句中的指定位置綁定一個 String 值

ResultSet 接口
ResultSet 提供檢索不同類型字段的方法。

常用方法

?getString(intindex)、getString(StringcolumnName) 獲得在數(shù)據(jù)庫里是 varchar、char 等類型的數(shù)據(jù)對象。 ?getFloat(intindex)、getFloat(StringcolumnName) 獲得在數(shù)據(jù)庫里是 Float 類型的數(shù)據(jù)對象。 ?getDate(intindex)、getDate(StringcolumnName) 獲得在數(shù)據(jù)庫里是 Date 類型的數(shù)據(jù)。
?getBoolean(intindex)、getBoolean(StringcolumnName) 獲得在數(shù)據(jù)庫里是 Boolean 類型的數(shù)據(jù)。
?getObject(intindex)、getObject(StringcolumnName) 獲取在數(shù)據(jù)庫里任意類型的數(shù)據(jù)。

ResultSet 對結(jié)果集進(jìn)行滾動的方法

?next():移動到下一行。
?Previous():移動到前一行。
?absolute(introw):移動到指定行。
?beforeFirst():移動 resultSet 的最前面。
?afterLast() :移動到 resultSet 的最后面。

CallableStatement 接口

繼承自 PreparedStatement 接口,由方法 prepareCall 創(chuàng)建,用于調(diào)用數(shù)據(jù)庫的存儲過程。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI