JDBC

概念:

JDBC 就是使用Java語言操作關系型數據庫的一套API 全稱:( Java DataBase Connectivity ) Java 數據庫連接。

JDBC的本質:

  • 官方(sun公司)定義的一套操作所有關系型數據庫的規則,即 接口
  • 各個數據庫廠商去實現這套接口,提供數據庫驅動jar包
  • 我們可以使用這套接口(JDBC)編程,真正執行的代碼是驅動 jar包中的實現類 ?

Java操作數據庫的流程:

?

編寫代碼的步驟:

        //1.注冊驅動Class.forName("com.mysql.jdbc.Driver");//2.獲取連接String url= "jdbc:mysql://127.0.0.1:3306/db1?useSSL=false";String username= "root";String password= "Yuan1001*";Connection conn = DriverManager.getConnection(url, username, password);//3.定義sql語句String sql="update account set money=2000 where id=1";//4.獲取執行sql的對象StatementStatement state = conn.createStatement();//5.執行sqlint count = state.executeUpdate(sql);//受影響的行數//6.處理結果System.out.println(count);//7.釋放資源state.close();conn.close();

三、JDBC API詳解?

?

3.1DriverManager?

url 連接路徑:

語法:jdbc:mysql://ip地址(域名):端口號/數據庫名稱?參 數鍵值對1&參數鍵值對2…

示例:jdbc:mysql://127.0.0.1:3306/db1

==細節:== 如果連接的是本機mysql服務器,并且mysql服務默 認端口是3306,則url可以簡寫為:jdbc:mysql:///數 據庫名稱?參數鍵值對

配置 useSSL=false 參數,禁用安全連接方式,解決 警示提示?

user:用戶名

password:密碼

3.2Connection

Connection(數據庫連接對象)的作用:

1.獲取執行SQL的 對象

2.管理事物

3.2.1獲取執行SQL的 對象

普通執行SQL對象:

預編譯SQL的執行SQL對象:防止SQL注入

執行存儲過程的對象:

?

3.2.2事務管理

  • MySQL事務管理:

  • JDBC事物管理:

//1. 注冊驅動//Class.forName("com.mysql.jdbc.Driver");//2. 獲取連接:如果連接的是本機mysql并且端口是默認
的 3306 可以簡化書寫String url = "jdbc:mysql:///db1?
useSSL=false";String username = "root";String password = "1234";Connection conn = 
DriverManager.getConnection(url, username, 
password);//3. 定義sql ? ? ? String sql1 = "update account set money = 
3000 where id = 1";String sql2 = "update account set money = 
3000 where id = 2";//4. 獲取執行sql的對象 StatementStatement stmt = conn.createStatement();try {// ============開啟事務==========conn.setAutoCommit(false);//5. 執行sqlint count1 = stmt.executeUpdate(sql1);//
受影響的行數//6. 處理結果System.out.println(count1);int i = 3/0;//5. 執行sqlint count2 = stmt.executeUpdate(sql2);//
受影響的行數//6. 處理結果System.out.println(count2);// ============提交事務==========//程序運行到此處,說明沒有出現任何問題,則需求提
交事務conn.commit();} catch (Exception e) {// ============回滾事務==========//程序在出現異常時會執行到這個地方,此時就需要回
滾事務conn.rollback();e.printStackTrace();}//7. 釋放資源stmt.close();conn.close();
}
}

3.3Statement?

Statement對象的作用就是用來執行SQL語句

3.3.1 執行SQL語句

?

3.3.2代碼實現?

DML語句
/*** 執行DML語句* @throws Exception*/
@Test
public void testDML() throws ?Exception {//1. 注冊驅動//Class.forName("com.mysql.jdbc.Driver");//2. 獲取連接:如果連接的是本機mysql并且端口是默認的 
3306 可以簡化書寫String url = "jdbc:mysql:///db1?
useSSL=false";String username = "root";執行DDL語句String password = "1234";Connection conn = 
DriverManager.getConnection(url, username, 
password);//3. 定義sqlString sql = "update account set money = 3000 
where id = 1";//4. 獲取執行sql的對象 StatementStatement stmt = conn.createStatement();//5. 執行sqlint count = stmt.executeUpdate(sql);//執行完
DML語句,受影響的行數//6. 處理結果//System.out.println(count);if(count > 0){System.out.println("修改成功~");}else{System.out.println("修改失敗~");}//7. 釋放資源stmt.close();conn.close();
}

?3.4ResultSet

ResultSet(結果集對象)的作用:

1.封裝DQL查詢語句的結果

?

獲取查詢結果

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/714970.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714970.shtml
英文地址,請注明出處:http://en.pswp.cn/news/714970.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ChatGPT-4.0:學術研究論文檢索的新篇章

ChatGPT-4.0:學術研究論文檢索的新篇章 在當代學術研究的廣闊天地,知識的追求始終在不斷進化,緊密擁抱能夠加強研究者探索和吸收信息能力的創新技術。ChatGPT-4.0的出現代表了學術探索的一次質的飛躍,為研究人員查詢學術論文提供…

Filebeat將csv導入es嘗試

一、安裝 在docker中安裝部署ELKfilebeat 二、主要配置 - type: log # Change to true to enable this input configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. paths: - /home/centos/pip_v2.csv #源路徑 #…

Sqli-labs靶場第15關詳解[Sqli-labs-less-15]

Sqli-labs-Less-15 #自動化注入-SQLmap工具注入 SQLmap用戶手冊:文檔介紹 - sqlmap 用戶手冊 由于這題是post請求,所以先使用burp進行抓包,然后將數據包存入txt文件中打包 用-r 選擇目標txt文件 python sqlmap.py -r data.txt -current-db…

Visual Studio C++項目遠程斷點調試客戶現場程序方法

前言 程序開發一個很常見的場景,就是程序在自己本地部署調試明明一點問題都沒有,但是部署到客戶現場就問題百出,要調試起來還很困難,在自己本地也沒有條件復現,很多時候只能靠日志一點點排查和猜測,耗費大…

我在代碼隨想錄|寫代碼Day31 | 貪心算法總結篇 | 貪心終結一題

&#x1f525;博客介紹&#xff1a; 27dCnc &#x1f3a5;系列專欄&#xff1a; <<數據結構與算法>> << 算法入門>> << C項目>> &#x1f3a5; 當前專欄: << 算法入門>> 專題 : 數據結構幫助小白快速入門算法 &#x1f4…

window使用hyper安裝centos及docker、kubenet\k8s

window虛擬機安裝centos&#xff1a; windows系統下安裝linux&#xff08;centos7&#xff09;虛擬機詳細教程&#xff08;virtualbox環境&#xff09;_windows安裝linux虛擬機-CSDN博客 準備3臺機器&#xff1a; 172.29.34.250 172.29.37.174 172.29.39.106 安裝教程&…

關于定時器 setTimeout 可能會引發的內存泄露

前言 setTimeout 本身并不直接引發內存泄露&#xff0c;但如果使用不當&#xff0c;確實可以間接導致內存泄漏。以下是一些使用 setTimeout 可能導致內存泄漏的情況&#xff1a; 閉包引用&#xff1a; 在 setTimeout 的回調函數中&#xff0c;如果引用了外部變量&#xff08;形…

AJAX實例

AJAX - Asynchronous JavaScript and XML - 異步的JavaScript與XML&#xff0c;不是一門新技術&#xff0c;只是一個新的術語。&#xff08;老技術新玩法&#xff09; - 使用AJAX&#xff0c;網頁能夠將增量更新呈現在頁面上&#xff0c;而不需要刷新整個頁面。 - 雖然X代表…

力扣1892 頁面推薦Ⅱ

力扣1892&#xff0c;頁面推薦Ⅱ&#xff0c;為一個社交媒體網站實施一個頁面推薦系統。如果頁面被user_id的 至少一個朋友喜歡 &#xff0c;而 不被user_id喜歡 &#xff0c;你的系統將 推薦 一個頁面到user_id。 目錄 題目描述 解題思路 完整代碼 優化 題目描述 表&…

【C++】cout 的默認精度

cout 的默認精度為&#xff1a; 四舍五入保留六位有效數字輸出。例如 123.4567 應該輸出為 123.457&#xff0c;5432.10 應該輸出為 5432.1。 一、使用C語言輸出符合cout默認精度的數值 double weight; scanf("%lf",&weight);printf("%.6g",weight)…

FlinkSql hint之狀態生命周期 state_ttl

狀態生命周期hint FlinkSQL 的 state ttl&#xff08;Time-To-Live&#xff0c;生存時間&#xff09;是一個用于管理狀態數據生命周期的機制。在 Flink 流處理中&#xff0c;狀態是一個重要的概念&#xff0c;它允許跨時間窗口或事件時間處理的狀態化操作。然而&#xff0c;隨…

分治法(Divide and Conquer)

目錄 1.定義 2.例子 3.注意 1.定義 分治法&#xff08;Divide and Conquer&#xff09;是一種解決問題的算法設計策略&#xff0c;它將一個大問題分解成若干個規模較小且結構與原問題相似的子問題&#xff0c;然后遞歸地解決這些子問題&#xff0c;最后將子問題的解合并起來…

Dockerfile 語法教程

Dockerfile 語法教程 文章目錄 Dockerfile 語法教程Dockerfile 語法教程基礎概念Dockerfile 簡介鏡像、容器、倉庫的概念 Dockerfile 基本語法 Dockerfile 基本語法Dockerfile 的基本結構注釋的使用指令的格式指令的執行順序 Dockerfile 常用指令FROM 指令RUN 指令CMD 指令ENTR…

鴻蒙崗位需求突增!移動端、PC端、IoT到底該怎么選?

“2024年是原生鴻蒙的關鍵一年&#xff0c;我們要加快推進各類鴻蒙原生應用的開發&#xff0c;集中打贏技術底座和三方生態兩大最艱巨的戰斗。”這是余承東在新年信中表達的決心。 隨后在1月18日舉行的鴻蒙生態千帆啟航儀式上&#xff0c;華為宣布 HarmonyOS NEXT 鴻蒙星河版系…

當開發人員無法解決問題時,測試人員應該如何與他們溝通?

當開發人員無法解決問題時&#xff0c;測試人員可以采取以下方式進行溝通&#xff1a; 保持耐心和理解&#xff1a;意識到解決問題可能需要時間和努力&#xff0c;避免對開發人員施加過度壓力。提供更多信息和細節&#xff1a;檢查是否有其他相關信息或細節可以提供給開發人員…

Codeforces Round 929 (Div. 3)---->E. Turtle vs. Rabbit Race: Optimal Trainings

一&#xff0c;思路&#xff1a; 1&#xff0c;做這題如果對二分敏感的話&#xff0c;看完題目就大概很容易想到&#xff0c;通過二分來找到一個 r ,使得 [ l, r] 之間的和最接近 u (因為這樣才是 Isaac 所能獲得的最大提升)。 2&#xff0c;還有一個特殊情況&#xff0c;結合…

MobiLlama: Towards Accurate and Lightweight Fully Transparent GPT

論文的主要目的是設計一個準確且高效的小型語言模型&#xff08;SLM&#xff09;&#xff0c;以滿足資源受限設備的需求。以下是根據論文內容整理的要點&#xff1a; 背景與挑戰&#xff1a; 大型語言模型&#xff08;LLMs&#xff09;在處理復雜任務時表現出色&#xff0c;但它…

Linux下進程相關概念詳解

目錄 一、操作系統 概念 設計操作系統的目的 定位 如何理解“管理” 系統調用和庫函數概念 二、進程 概念 描述進程—PCB&#xff08;process control block&#xff09; 查看進程 進程狀態 進程優先級 三、其它的進程概念 一、操作系統 概念 任何計算機系統都包…

【Easyx】easyx從入門到精通 — 初步入門

easyx 初步入門 1 安裝easyx圖形庫2 如何使用Easyx3 效果初試4 基本圖形繪制4.1 繪制點4.2 繪制直線4.3 繪制圓形4.4 繪制矩形4.5 繪制橢圓4.6 繪制圓角矩形4.7 繪制扇形 Thanks?(&#xff65;ω&#xff65;)&#xff89;謝謝閱讀&#xff01;&#xff01;&#xff01;下一篇…