中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

临猗县| 侯马市| 准格尔旗| 读书| 进贤县| 北流市| 宜君县| 桦南县| 瑞昌市| 株洲县| 安陆市| 潢川县| 德安县| 资讯| 西乌珠穆沁旗| 香河县| 临高县| 修武县| 永靖县| 怀远县| 汝城县| 石屏县| 丹凤县| 山西省| 缙云县| 宜丰县| 建瓯市| 卫辉市| 平邑县| 布拖县| 仲巴县| 肃宁县| 左云县| 镇坪县| 革吉县| 甘孜县| 临泉县| 东乡| 翁源县| 建昌县| 邻水|