亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

jdbc基本使用詳解

發布時間:2020-06-07 22:06:28 來源:網絡 閱讀:645 作者:眼前一黑 欄目:MySQL數據庫

JDBC全稱Java DataBase Connectivity / java數據庫連接,是使用java連接和操作數據庫的最基本驅動工具。

sun公司的javasoft部門開發

最早的JDBC 1.0 隨JDK1.1發布

  • 由一組用Java語言編寫的類和接口組成

  • 用于執行SQL語句的Java API

  • 可以為多種關系數據庫提供統一訪問


使用JDBC驅動的最大的好處就是可以訪問不同的數據庫,因為不同數據庫本身提供不同的驅動以迎合JDBC驅動

流程

  • 導入jar包:驅動jar包!

  • 加載驅動類:Class.forname(類名)

  • 給出urlusernamepassword

  • 使用DriverManager類得到Connection對象

jdbc基本使用詳解

JDBC使用流程

  • 導入jar包:驅動jar包!

  • 加載驅動類:Class.forname(類名)

  • 給出urlusernamepassword

  • 使用DriverManager類得到Connection對象

四大參數:

  1. driverClassName--com.mysql.jdbc.DriverMySql數據庫)

  2. url--jdbc:mysql://localhost:3306/數據庫名稱(MySql數據庫)

  3. Uesrname

  4. Password


一、加載驅動類(注冊驅動)

Class.forName("com.mysql.jdbc.Driver");

反射機制創建驅動類對象

forName靜態方法:返回與給定字符串名稱的類或接口相關聯的類對象

com.mysql.jdbc.Driver

所有java.sql.driver的實現類都提供了static代碼塊,代碼塊中代碼把自己注冊到DriverManage

(向 DriverManager 注冊給定驅動程序: 新加載的驅動程序類應該調用 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 驅動程序的基本服務

注意: JDBC 2.0 API中新增的DataSource接口提供了另一種連接到數據源的方法。 使用DataSource對象是連接到數據源的首選方法。

java.sql.Connection

與特定數據庫的連接(會話)。在連接上下文中執行 SQL 語句并返回結果。


三、操作數據庫(CURD)

?

  1. 獲取Statement

Statement stmt = con.createStatement();

java.sql .Statement

用于執行靜態SQL語句并返回其生成的結果的對象

在默認情況下,同一時間每個 Statement 對象在只能打開一個 ResultSet 對象

?

??????2、執行execute方法(executeUpdate、executeQuery)

?????????executeUpdate(String?sql)

??????????執行給定SQL 語句,該語句可能為?INSERTUPDATE?或?DELETE?語句,或者不返回任何內容的 SQL 語句(如 ? SQL DDL 語句)

? 方法返回值:

SQL語句執行后影響的數據行數

(1) 對于 SQL 數據操作語言 (DML) 語句,返回行計數

(2) 對于什么都不返回的 SQL 語句,返回 0

? ? ? ? executeQuery(String?sql)

? ? ? ? ? 執行給定的Query?語句語句,該語句返回單個ResultSet 對象(結果集)

??ResultSet?
????表示數據庫結果集的數據表,通常通過執行查詢數據庫的語句生成。

????需解析返回的結果集

?

? ? ? 3、解析ResultSet對象(一般查詢操作才存在)

ResoultSet對象中的數據存儲格式:二維表格

遍歷結果集方法

ResultSet 對象具有指向其當前數據行的行光標

最初,光標被置于第一行之前。

next 方法將光標移動到下一行;因為該方法在 ResultSet 對象沒有下一行時返回 false,所以可以在 while 循環中使用它來迭代結果集

jdbc基本使用詳解

? ? ? ?next()

? ? ? ? ? ? ? 將光標從當前位置向下移一行。

? ? ? ?兩種獲取列值方法:

????????????????????????1、列編號

????????????????????????? ? ?getInt(int?columnIndex)

????????????????????????2、列名

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?getInt(String?columnLabel)



4、關閉連接(Connection、Statement、ResultSet)?????

  • connection.close();——必須關閉

  • statement.close();

  • resultset.close();

節省資源

在不使用數據庫連接池情況下,connection.close()關閉時,statement和resoultset也會隨之自動關閉

但是如果使用了數據庫連接池,connection.close()不會關閉連接,只會歸還給連接池,statement和resoultset對象就會不斷持有

所以最好將ResultSet、Statement、Connection按順序close



????


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

贡山| 六枝特区| 建德市| 四会市| 汕尾市| 鹤峰县| 蓬莱市| 吉木萨尔县| 保亭| 依安县| 吉木乃县| 屏东县| 中方县| 教育| 洞口县| 邢台市| 柘城县| 澄城县| 洮南市| 黎平县| 塔城市| 叶城县| 高尔夫| 镇沅| 大宁县| 锡林浩特市| 炎陵县| 项城市| 台安县| 神池县| 阜宁县| 西贡区| 比如县| 砀山县| 克拉玛依市| 霸州市| 翁源县| 海兴县| 漯河市| 和硕县| 方山县|