JDBC以及事務

1、JDBC是什么?

????????JDBC是Java DataBase Connectivity(Java語言鏈接數據庫)

2、JDBC的本質

????????JDBC是一套接口,有調用者(java工程師)和實現者(SUN公司)(實現類被稱為驅動)之分,跟面向接口調用、面向接口寫實現類,都屬于面向接口編程

  • 為什么面向接口?
    • 解耦合:降低程序的耦合度,提高程序的擴展力;

3、關系

4、JDBC編程6步

- 第一步:注冊驅動(作用:告訴Java程序,即將要鏈接的是哪個品牌的數據庫)(DriverManager接口)- 第二步:獲取連接(表示JVM的進程與數據庫的進程打開了,這屬于進程之間的通信,使用完后一定要關閉)(Connection接口)- 第三步:獲取數據庫操作對象 (專門執行sql語句的對象)(Statement接口、PreparedStatement接口)- 第四步:執行SQL語句(主要是DML DQL)- DML(數據操作語言): insert、delete、update,對表中的數據進行增刪改- 第五步:處理查詢 結果集(只有第四部執行的是select語句時,這一步才會執行)(ResultSet接口)- 第六步: 釋放資源(使用完之后一定要關閉資源,Java和數據庫屬于進程間的通信,開啟之后一定要關閉)(close)

?5、JDBC事務

  • ?什么是事務
    • 事務是數據庫提供的一個特性
    • 事務:組成各個數據的(最小)執行單元,要么都成功,要么都失敗
    • 我們使用一個例子來說明:以轉賬為例
      • * 轉賬的功能,冠希給美美轉1000元錢。    
        * 使用事務    
        * 	先給冠希扣除掉1000元        
        * 	再給美美加上1000元        
        * 事務結束了
      • ?在MYSQL中操作
        • create table t_account(    
          id int primary key auto_increment,        
          username varchar(20),        
          money double        
          );--兩種方式,第一種:使用命令的方式
          start transaction;		--開啟事務
          update t_account set money = money ‐ 1000 where username = '冠希';
          update t_account set money = money + 1000 where username = '美美';
          commit;					--提供事務(事務已經結束了,數據永久的保存到數據庫中了)
          rollback;				--回滾事務(事務已經結束了,數據回滾到最初始化的狀態)--第二種方式:設置MySQL事務不默認提交的方式
          --MySQL數據庫的事務是默認提交的。
          update t_account set money = money ‐ 1000 where username = '冠希';   --默認使用了一個事務
          --設置讓MySQL的數據庫的事務不默認提交
          set autocommit = off或者0
          --編寫SQL語句(執行完,都沒有提交)
          sql1
          sql2
          --手動提交和回滾
          commit;
          rollback;
  • ?事務的特性
    • 原子性
      • 表示事務中所有操作是不可再分割的原子單位
    • 一致性
      • 事務執行前后數據需要保證一致
    • 隔離性
      • 多個事務同時操作一條記錄,事務之間不能互相干擾
    • 持久性
      • 事務一旦結束了,數據將永久的保存到數據庫中
  • 事務的隔離
    • 不考慮隔離性所引發的問題
      • 1、臟讀:一個事務讀取到了另一個事務未提交的數據
        2、不可重復讀:一個事務讀取到了另一個事務提交的數據,導致了多次查詢的結果不一致。強調的是update,修改記錄的數據。
        3、虛度(幻讀):一個事務讀取到了另一個事務提交的數據,導致了多次查詢的結果不一致。強調是insert,向表中添加一條數據。
    • ?設置隔離級別
      • 事務的隔離級別
        • Read uncommitted		--讀未提交,什么都解決不了
          Read committed			--讀已提交,避免臟讀,但是不可重復讀和虛讀有可能產生
          Repeatable read			--可重復度,避免臟讀和不可重復讀,虛度有可能產生的(mysql默認)
          Serializable			--串行,避免各種讀(當有一個事務的級別達到此時就會上鎖,另一個就不再允許                                                                                    執行任何修改操作,以此達到避免各種問題的目的)

          ?

      • ??4中隔離的安全性和效率
        • 安全		Serializable > Repeatable read > Read committed > Read uncommitted
          效率		Serializable < Repeatable read < Read committed < Read uncommitted

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

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

相關文章

Android13系統導航欄添加音量加減鍵按鈕功能

不知道為什么拿到芯片原廠發布給我們的Android13系統源碼編譯后&#xff0c;導航欄沒有音量加減鍵&#xff0c;客戶有反饋這個問題&#xff0c;所以特意加了一下&#xff0c;修改記錄如下&#xff1a;frameworks/base目錄下 commit 9cb2244d61a237cab03c540bfcca6e4fac2bea2c …

Linux OpenGrok搭建

文章目錄 一、目的二、環境三、相關概念3.1 OpenGrok3.2 CTags3.3 Tomcat 四、OpenGrok搭建4.1 安裝jdk4.2 安裝ctags依賴4.3 安裝universal-ctags4.3.1 下載universal-ctags4.3.2 編譯&&安裝universal-ctags 4.4 安裝Tomcat4.4.1 下載&&解壓Tomcat4.4.2 啟動T…

繼續撿錢,每天幾百塊!

每日操作計劃&#xff1a; 標普信息科技(161128)&#xff0c;溢價8.5%&#xff0c;限購100&#xff0c;一拖七&#xff0c;單戶每天700*8.5%59元 印度基金LOF(164824)&#xff0c;溢價2.6%&#xff0c;限購100&#xff0c;一拖七&#xff0c;單戶每天700*2.6%18元 美元債LOF(…

【leetcode系列】46.全排列

題目&#xff1a;給定一個不含重復數字的數組 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意順序 返回答案。 示例 1&#xff1a; 輸入&#xff1a;nums [1,2,3] 輸出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2&#xff1a; 輸入&am…

算法力扣刷題記錄 二十【18題. 四數之和】

前言 哈希篇&#xff0c;繼續。 記錄 二十【18題. 四數之和】 一、題目閱讀 給你一個由 n 個整數組成的數組 nums &#xff0c;和一個目標值 target 。請你找出并返回滿足下述全部條件且不重復的四元組 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若兩個四元組元素一…

為什么要本地化您的多媒體內容?

當我們訪問網站、應用程序和社交媒體時&#xff0c;體驗不再局限于陳舊的文本和靜態圖像。現代處理能力和連接速度提高了快速加載視頻、音頻和動畫的可能性。 這一切都提供了更具沉浸感和互動性的用戶體驗。多媒體是數字營銷中最有效的內容之一&#xff0c;因為它對用戶更具吸…

vue-cli 項目打包優化-基礎篇

1、項目打包完運行空白 引用資源路徑問題&#xff0c;打包完的【index.html】文件引用其他文件的引用地址不對 參考配置&#xff1a;https://cli.vuejs.org/zh/config 修改vue.config.js &#xff0c;根據與 后端 或 運維 溝通修改 module.export {// 默認 publicPath: //…

使用API有效率地管理Dynadot域名,為文件夾中的域名設置域名轉發

關于Dynadot Dynadot是通過ICANN認證的域名注冊商&#xff0c;自2002年成立以來&#xff0c;服務于全球108個國家和地區的客戶&#xff0c;為數以萬計的客戶提供簡潔&#xff0c;優惠&#xff0c;安全的域名注冊以及管理服務。 Dynadot平臺操作教程索引&#xff08;包括域名郵…

全彩屏負氧離子監測站

TH-FZ5在追求綠色生態、健康出行的今天&#xff0c;景區不僅僅是人們休閑游玩的好去處&#xff0c;更是人們體驗大自然、感受清新空氣的重要場所。為了進一步提升游客的游覽體驗&#xff0c;許多景區紛紛引入了全彩屏負氧離子監測站&#xff0c;這一創新舉措不僅為景區增添了科…

【懷莊之醉白酒】懷莊之醉醬香白酒哪款好?

【懷莊之醉醬香白酒】在懷莊之醉醬香白酒的豐富系列中&#xff0c;懷莊之醉尊品、懷莊之醉三星和懷莊之醉匠心之作是三款受到廣泛歡迎的產品。 每一款酒都具備其獨特的風味和適合的飲用場合。以下是對這三款酒特性的分析&#xff1a; 懷莊之醉 尊品&#xff1a;懷莊之醉 尊品…

云通SIPX,您的碼號資源智能調度專家!

在數字化轉型的浪潮中&#xff0c;號碼資源作為企業與客戶溝通的重要橋梁&#xff0c;其管理效率直接關系到企業運營的成敗。隨著運營商對號碼資源管理的規范化和精細化&#xff0c;企業對高效、智能的號碼資源管理需求日益增長&#xff0c;以實現對外呼叫的降本增效。 一、什么…

學生成績管理系統帶8000字文檔學生選課管理系統java項目javaweb項目ssm項目jsp項目java課程設計java畢業設計

文章目錄 學生選課成績管理系統一、項目演示二、項目介紹三、8500字項目文檔四、部分功能截圖五、部分代碼展示六、底部獲取項目源碼帶8500字文檔&#xff08;9.9&#xffe5;帶走&#xff09; 學生選課成績管理系統 一、項目演示 選課成績管理系統 二、項目介紹 語言: Java …

php數據結構之鏈表

本文由 ChatMoney團隊出品 鏈表的基本概念 鏈表&#xff08;Linked List&#xff09;是一種常見的數據結構&#xff0c;它由一系列節點組成&#xff0c;每個節點除了存儲數據外&#xff0c;還包含指向下一個節點的指針。與數組相比&#xff0c;鏈表在插入和刪除操作上具有更高…

直播帶貨大模型,開啟自動賣貨的時代

Streamer-Sales是一個為直播帶貨主播量身定制的智能工具。 它能夠智能分析商品特性&#xff0c;自動創作出引人入勝的解說詞&#xff0c;從而有效增強商品的吸引力和提升銷售業績。它還具備多種交互功能&#xff0c;比如將主播的語音實時轉換為文字&#xff0c;便于與觀眾進行…

移動端 UI 風格,書寫華麗篇章

移動端 UI 風格&#xff0c;書寫華麗篇章

原創作品—醫療行業軟件界面UI、交互設計

在醫療行業大屏UI設計中&#xff0c;首要的是以用戶為中心&#xff0c;深入理解醫生、護士、管理層等用戶群體的具體需求和工作流程。大屏設計應直觀展示關鍵醫療數據、患者信息、設備狀態等&#xff0c;確保用戶能夠迅速、準確地獲取所需信息。同時&#xff0c;功能布局應合理…

12寸和8寸封裝線的差異點

12英寸&#xff08;300mm&#xff09;晶圓封裝線與8英寸&#xff08;200mm&#xff09;晶圓封裝線在多個方面存在顯著區別&#xff0c;這些區別影響了它們的生產效率、成本結構和適用技術。以下是一些主要差異&#xff1a; 1. **晶圓面積**&#xff1a; - 12英寸晶圓擁有更…

??植物大戰僵尸雜交版直裝版v2.1 安卓版:全新策略塔防體驗

《植物大戰僵尸雜交版直裝版》v2.1是由B站UP主“潛艇偉偉迷”精心制作的同人游戲&#xff0c;為策略塔防手游帶來了全新的活力。游戲中引入了眾多創新的雜交植物&#xff0c;例如結合了向日葵的陽光生成能力和豌豆射手的攻擊特性的向日葵豌豆射手&#xff0c;以及擁有寒冰豌豆射…

docker打包 arm32v7/debian 問題總結

1.架構不同 我的宿主是x86 ,但是打包的是arm架構 安裝qemu sudo apt-get install binfmt-support qemu qemu-user-static 然后使用buildx打包 docker buildx build --no-cache --platform linux/arm/v7 -t tdc_post:1.0.1 . --load 保存tar docker save -o tdc_post.tar tdc_p…

金融科技如何運用技術手段實現細顆粒度服務

隨著金融科技的快速發展&#xff0c;金融機構正在通過采用各種技術手段來提供更加細顆粒度的服務&#xff0c;以滿足客戶日益增長的個性化需求。這些技術手段不僅提高了金融服務的效率和安全性&#xff0c;還顯著提升了用戶體驗和滿意度。 一、大數據分析與人工智能&#xff08…