在這裡雲源想要它對你的幫助容易學習 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(布林值自動提交):指定事務是否自動提交。
關閉自動提交事務。commit() 在鏈結上提交事務。setautocommit(false);
關閉後,您需要手動開啟提交事務。
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**a2.載入驅動程式類
class.forname("com.mysql.cj.jdbc.driver");3.在 J**A 和資料庫之間建立連線通道
string url = "jdbc:mydql://locallhost:3306/test";test 是資料庫的名稱。4.建立乙個負責“交付訂單”的“先驅”目標string user = "root";
string password = "root";
connection conn = drivermanager.getconnection(url,user,password);
string sql ="insert into emp values(null,"醒來","歌手",7956,now(),79429,6799,30,1)";5.接收結果集(只有查詢具有結果集)。preparestement ps = conn.preparestement(sql);
int row = ps.excuteupdate();保留命令由 mysql 執行。6.關閉連線通道system.out.println(row + "線路受到影響!");
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時,你會發現它給你的工作和習帶來了極大的便利。