對資料庫連線工件JDBC的組成和工作原理進行了全面分析!

Mondo 科技 更新 2024-01-30

在這裡雲源想要它對你的幫助容易學習 IT”。

嗨,你今天過得怎麼樣?

這個世界上一定有另乙個我。

做我不敢做的事。

過我想過的生活。

JDBC(J**A Database Connectivity)是乙個用於執行 SQL 語句的 J**A API,它是 J**A 和資料庫之間的橋梁,是乙個規範而不是乙個實現,可以交給資料庫來執行 SQL 語句。

在資訊時代,資料庫已成為儲存和管理資料的重要工具。 作為一種廣泛使用的程式語言,J**a 與資料庫的互動尤為重要。 JDBC就是為了解決這個問題而誕生的。

通過JDBC,我們可以在J**A程式中方便地執行SQL語句,實現對資料庫的增刪改查操作。 今天我們要談談JDBC的概念。

概念:

JDBC (J**A 資料庫連線):J**A 資料庫連線技術。

具體來說,就是通過J**A連線各種資料庫,對錶中的資料進行增刪改查等操作的技術。 如圖所示

從本質上講,JDBC 與圖形客戶端執行相同的操作,即將 SQL 操作傳送到資料庫。 不同的是,圖形介面中的操作是圖形化的、愚蠢的,而JDBC需要編碼(這個時候不要想JDBC怎麼寫,也不要想它有多難)才能完成圖形化操作的效果。

也就是說,JDBC本質上是一種傳送SQL操作資料庫的客戶端技術,但需要通過J**A編碼來完成。

它的作用:

通過JDBC技術與資料庫互動,以J**A語言向資料庫傳送SQL語句,可以對資料進行增刪減、修改、查詢等操作,更高效、更安全地管理資料。

JDBC 是資料庫和 J**A** 之間的橋梁(鏈結)。

JDBC由一組用J**A語言編寫的類和介面組成,主要包括驅動程式管理、連線介面、語句介面和結果集介面。

連線介面

定義:JDBC程式中用來表示資料庫的連線是資料庫程式設計中最重要的物件,客戶端和資料庫之間的所有互動都是通過連線物件完成的。

connection conn = drivermanager.getconnection(url,user,password);

常用方法:

createstatement() 為要傳送到資料庫的 SQL 語句建立乙個語句物件。

PrepareStatement(SQL):建立乙個 preparesatement 物件,用於將預編譯的 SQL 傳送到資料庫。

preparecall(sql):建立執行儲存過程的 callablestatement 物件。 (常用)。

setAutoCommit(布林值自動提交):指定事務是否自動提交。

關閉自動提交事務。

setautocommit(false);

關閉後,您需要手動開啟提交事務。

commit() 在鏈結上提交事務。

rollback() 回滾此鏈結上的事務。

語句介面

Statement:由 CreateStatement 建立,用於傳送簡單的 SQL 語句(無引數)。

statement st = conn.createstatement();

PreparedStatement:繼承自 Statement API,是 Statement 的子類,可以傳送帶引數的 SQL 語句。 效率更高,可以防止SQL注入,所以推薦使用。

preparedstatement ps = conn.prepare語句(sql);

PreparedStatement的優點:

語句導致資料庫頻繁編譯SQL語句,可能導致資料庫緩衝區溢位。 PreparedStatement可以對SQL語句進行預編譯,提高資料庫的執行效率。

此外,PreperedStatement 允許在 SQL 中使用佔位符替換引數,簡化了 SQL 語句的編寫,避免了 SQL 注入的問題。

CallableStatement:繼承自 PrepareCall 方法建立的 PreparedStatement 介面,用於呼叫儲存過程。

常用方法:

ExecuteQuery(String SQL):用於向資料傳送查詢語句。

ExecuteUpdate(String SQL):用於向資料庫傳送INSERT、UPDATE或DELETE語句。

execute(string sql):用於向資料庫傳送任意SQL語句。

Addbatch(String SQL):將多個SQL語句放入乙個批處理中。

executebatch():向資料庫傳送一批SQL語句執行。

ResultSet 介面

ResultSet:SQL語句的執行結果。

當 ResultSet 封裝執行結果時,它採用與 ** 類似的方法,ResultSet 物件維護乙個指向 ** 資料行的游標,最初,該游標稱為 ResultSet。 在第一行之前next() 方法,可以將游標指向特定的資料行,並呼叫該方法獲取該行的資料。

常用方法:

resultset.next() 到下一行;

resultset.previous() 新增到上一行。

resultset.absolute(int row):移動到指定的行。

resultset.beforeFirst():移動結果集的前面。

resultset.afterlast():移動結果集的最後部。

JDBC的工作原理可以分解為以下步驟:

1.載入並註冊 JDBC 驅動程式:

這是建立資料庫連線的第一步,我們需要先載入 JDBC 驅動,然後通過 DriverManager 的 RegisterDriver 方法註冊。

2.建立資料庫連線:

使用 DriverManager 的 getconnection 方法,我們可以建立與資料庫的連線。

3.建立語句物件:

使用連線物件的 createstatement 方法,我們可以建立乙個用於執行 SQL 語句的語句物件。

4.執行 SQL 語句:

使用 Statement 物件的 ExecuteQuery 或 ExecuteUpdate 方法,我們可以執行 SQL 語句、獲取結果或更新資料庫。

結果:

對於查詢操作,我們需要處理結果集結果集;對於更新操作,我們不需要處理結果。

6.關閉資源:

最後,我們需要關閉開放資源,包括結果集、語句和連線。

讓我們看乙個如何使用JDBC的簡單示例。 假設我們想查詢為"students"表中所有資料:

1.在pom中將MySQL驅動程式檔案引入XML中

mysqlmysql-connector-j**a

2.載入驅動程式類

class.forname("com.mysql.cj.jdbc.driver");

3.在 J**A 和資料庫之間建立連線通道

string url = "jdbc:mydql://locallhost:3306/test";test 是資料庫的名稱。

string user = "root";

string password = "root";

connection conn = drivermanager.getconnection(url,user,password);

4.建立乙個負責“交付訂單”的“先驅”目標

string sql ="insert into emp values(null,"醒來","歌手",7956,now(),79429,6799,30,1)";

preparestement ps = conn.preparestement(sql);

5.接收結果集(只有查詢具有結果集)。

int row = ps.excuteupdate();保留命令由 mysql 執行。

system.out.println(row + "線路受到影響!");

6.關閉連線通道

ps.close();

conn.close();

如何傳遞引數

鍵盤分配。

private static scanner scan;

static{

scan = new scanner(system.in);

連線字串

佔位符方法 '?

使用佔位符的好處:

可以有效避免SQL注入問題。

可以根據複製時的資料型別自動決定引入"

刪除

物理刪除

墓碑

查詢操作

全面詢價

按 ID 搜尋

物件導向是指將多個功能查詢劃分為多個包,用於新增、刪除、修改和查詢資料庫 (CRUD) 的過程。

db 包

DB 包中只有乙個類>DBmanager 類,該類的主要作用是管理資料的連線。

Bean 包角色

一般對應資料庫中的表,bean 包中的類一般和表名一樣,首字母大寫,駝峰名。

DAO 包角色

DAO 是乙個資料訪問物件,一般以 Bean 包的類名為字首,以 DAO 結尾,DAO 負責執行 CRUD 操作,而 DAO 類負責表的 CRUD,也可以說是 Bean 類的 CRUD(增、刪、改、查詢)。

多表查詢

以上是JDBC的基本概述,JDBC是一項看似複雜的技術,但實際上是乙個非常實用的工具。

只要掌握了竅門,就可以輕鬆處理和管理資料。 無論您是經驗豐富的程式設計師還是剛剛入門,我都強烈建議您學習 習 並使用 JDBC。 相信我,當你掌握JDBC時,你會發現它給你的工作和習帶來了極大的便利。

相關問題答案

    DBeaver 是用於多資料庫連線和資料分析的一體化助手

    Dbe er 是乙個強大的資料庫管理工具,支援 Hadoop 生態系統中的一些框架,包括 Spark Hive 和流行的 Presto。Presto作為分布式SQL查詢引擎,具有高效能和靈活性,通過DBE er連線Presto,我們可以輕鬆查詢和分析資料。值得一提的是,DBE er 的一位前同事是 ...

    我們來談談資料庫連線池 Druid

    在Spring Boot專案中,資料庫連線池已經成為標準配置,但是,我遇到過很多連線池異常導致業務錯誤的事故。許多有經驗的工程師也可能不小心在這方面遇到問題。在本文中,我們將仔細研究資料庫連線池,並解釋其實現機制,以便更好地理解和規避潛在風險。如果沒有連線池,我們可以按如下方式操作資料庫 應用程式使...

    資料安全知識 不同型別的資料庫

    有許多不同的資料庫型別可用,每種型別都有優點和缺點。每種資料庫型別都建立乙個特定的環境來儲存資料和資訊之間的關係。關聯式資料庫以類似表的行和列結構儲存資料,重點關注資料一致性。此資料庫型別側重於資料之間的關係,是使用最廣泛的資料庫型別。物件導向資料庫將物件導向程式設計 OOP 原則與關聯式資料庫標準...

    螞蟻資料庫致力於降本增效

    背景 專案背景 某省級高速中心的清算結算系統一直無法解決資料庫設計 選型等相關問題。在某省級高速工程建設過程中,資料庫建設方案一直是難點。該項目的建設面臨來自兩方面的壓力 時間短 任務重 在政策方面,某省交通科學研究院責令某省級高速公路盡快實現網路通行費計費 車道資料及現有清匯系統的設計,並做好整改...

    螞蟻資料庫致力於降本增效,一省高速清算結算的實踐意義重大

    中國正處於數位化轉型的關鍵時期,高速公路正朝著智慧高速公路的建設邁進。無論是傳統的高速卡口,如 資料採集 資料上傳 和 資料處理 基礎設施時代,或近期將實現具有 車輛協同智慧型化 邊緣控制中心 和 智慧型高速雲控中心 等特點的智慧高速公路建設 在時代,海量資料儲存 複雜計算 互動能力將成為關鍵,而這...