最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)的mysql事務(wù)處理操作示例

 更新時間:2018年08月30日 14:30:02   作者:u013063153  
這篇文章主要介紹了Java實現(xiàn)的mysql事務(wù)處理操作,結(jié)合實例形式較為詳細(xì)的分析了Java基于JDBC操作mysql數(shù)據(jù)庫實現(xiàn)事務(wù)處理的相關(guān)概念、操作技巧與注意事項,需要的朋友可以參考下

本文實例講述了Java實現(xiàn)的mysql事務(wù)處理操作。分享給大家供大家參考,具體如下:

1、事務(wù)是一組要么同時執(zhí)行成功,要么同時執(zhí)行失敗的sql語句。是數(shù)據(jù)庫操作的一個執(zhí)行單元。

2、事物的四大特點:

(1)atomicity(原子性)表示一個事務(wù)內(nèi)的所有操作是一個整體,要么全部成功,要么全部失敗。

(2)consistency(一致性)表示一個事物內(nèi)有一個操作失敗時,所有更改過的數(shù)據(jù)都必須回滾到修改前的狀態(tài)。

(3)isolation(隔離性)事務(wù)查看數(shù)據(jù)時數(shù)據(jù)所處的狀態(tài),要么是另一并發(fā)事務(wù)修改它之前的狀態(tài),要么是另一事務(wù)修改它之后的狀態(tài),事務(wù)不會查看中間狀態(tài)的數(shù)據(jù)。

(4)durability(持久性)持久性事務(wù)完成之后,他對于系統(tǒng)的影響是永久性的。

3、實例(以sql語句中的insert語句為例)

package com.test.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
 * 事務(wù)的基本用法
 *
 */
public class Test {
  public static void main(String[] args) {
    Connection conn = null;
    PreparedStatement ps1 = null;
    PreparedStatement ps2 = null;
    try {
      //加載驅(qū)動類
      Class.forName("com.mysql.jdbc.Driver");
      conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");
      conn.setAutoCommit(false); //JDBC中默認(rèn)是true,自動提交事務(wù)
      ps1 = conn.prepareStatement("insert into t_user (username,pwd) values (?,?)");//?是占位符
      ps1.setObject(1, "張三");
      ps1.setObject(2, "666666");
      ps1.execute();
      System.out.println("插入一個用戶張三");
      try {
        Thread.sleep(3000);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      ps2 = conn.prepareStatement("insert into t_user (username,pwd) values (?,?)");
      ps2.setObject(1, "李四");
      ps2.setObject(2, "123456");
      ps2.execute();
      System.out.println("插入一個用戶李四");
      conn.commit();//提交事務(wù)
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
      try {
        conn.rollback();//某一條數(shù)據(jù)添加失敗時,回滾
      } catch (SQLException e1) {
        e1.printStackTrace();
      }
    } catch (SQLException e) {
      e.printStackTrace();
    }finally{
      try {
        if(ps1!=null){
          ps1.close();
        }
      } catch (SQLException e) {
        e.printStackTrace();
      }
      try {
        if(conn!=null){
          conn.close();
        }
      } catch (SQLException e) {
        e.printStackTrace();
      }
    }
  }
}

這段代碼是正確的結(jié)果。運行結(jié)果:

插入一個用戶張三
(等待三秒后)
插入一個用戶李四

查看數(shù)據(jù)庫,插入了兩條數(shù)據(jù)。

接下來把數(shù)據(jù)庫中剛剛插入的兩條數(shù)據(jù)刪掉,然后把第二條sql語句改一下,讓他出錯,在第二條sql語句中去掉一個占位符:

ps2 = conn.prepareStatement("insert into t_user (username,pwd) values (?)");

運行結(jié)果:

插入一個用戶張三
(等待三秒后)
拋出錯誤了。。。。。。。。

然后查看一下數(shù)據(jù)庫,發(fā)現(xiàn)數(shù)據(jù)庫中兩條數(shù)據(jù)都沒能添加成功

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java+MySQL數(shù)據(jù)庫程序設(shè)計總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java文件與目錄操作技巧匯總》、《Java操作DOM節(jié)點技巧總結(jié)》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • idea中寫sql語句沒有提示字段的問題

    idea中寫sql語句沒有提示字段的問題

    在IDEA中編寫SQL時如果沒有字段提示,通常是因為沒有設(shè)置注入語言,解決方法是通過快捷鍵Alt+Enter選擇“注入語言或引用”,然后選擇相應(yīng)的數(shù)據(jù)庫(如MySQL),之后重新輸入SQL語句即可,此方法可以有效解決IDEA中SQL語句提示問題,提高開發(fā)效率
    2024-09-09
  • 利用mysql實現(xiàn)的雪花算法案例

    利用mysql實現(xiàn)的雪花算法案例

    這篇文章主要介紹了利用mysql實現(xiàn)的雪花算法案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • MybatisPlus中插入數(shù)據(jù)后獲取該對象主鍵值的實現(xiàn)

    MybatisPlus中插入數(shù)據(jù)后獲取該對象主鍵值的實現(xiàn)

    這篇文章主要介紹了MybatisPlus中插入數(shù)據(jù)后獲取該對象主鍵值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • jpa異常No entity found for query問題解決

    jpa異常No entity found for query問題解決

    這篇文章主要為大家介紹了jpa異常之No entity found for query的異常問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • java 使用Scanner類接收從控制臺輸入的數(shù)據(jù)方式

    java 使用Scanner類接收從控制臺輸入的數(shù)據(jù)方式

    這篇文章主要介紹了java 使用Scanner類接收從控制臺輸入的數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • MyBatis-Plus將字段修改為空值的解決方案

    MyBatis-Plus將字段修改為空值的解決方案

    這篇文章主要介紹了MyBatis-Plus將字段修改為空值的解決方案,本文給大家分享三種常用的解決方案,感興趣的朋友一起看看吧
    2023-12-12
  • java留言管理系統(tǒng)中模糊查詢實例分享

    java留言管理系統(tǒng)中模糊查詢實例分享

    這篇文章主要為大家詳細(xì)介紹了基于MVC+DAO的留言管理系統(tǒng)中java模糊查詢的簡單使用方法,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Java讀取properties文件連接數(shù)據(jù)庫的方法示例

    Java讀取properties文件連接數(shù)據(jù)庫的方法示例

    這篇文章主要介紹了Java讀取properties文件連接數(shù)據(jù)庫的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • IDEA2022性能優(yōu)化的一些設(shè)置技巧

    IDEA2022性能優(yōu)化的一些設(shè)置技巧

    這篇文章主要介紹了IDEA2022性能優(yōu)化的一些設(shè)置,需要的朋友可以參考下
    2022-08-08
  • Java中的DelayQueue實現(xiàn)原理及應(yīng)用場景詳解

    Java中的DelayQueue實現(xiàn)原理及應(yīng)用場景詳解

    這篇文章主要介紹了Java中的DelayQueue實現(xiàn)原理及應(yīng)用場景詳解,DelayQueue是一個沒有邊界BlockingQueue實現(xiàn),加入其中的元素必需實現(xiàn)Delayed接口,當(dāng)生產(chǎn)者線程調(diào)用put之類的方法加入元素時,會觸發(fā)Delayed接口中的compareTo方法進(jìn)行排序,需要的朋友可以參考下
    2023-12-12

最新評論

广西| 于都县| 普定县| 西平县| 鄱阳县| 牙克石市| 葫芦岛市| 朔州市| 玉山县| 馆陶县| 武乡县| 汾西县| 勃利县| 通辽市| 弥渡县| 天全县| 桂平市| 江西省| 广宗县| 苍南县| 吉木乃县| 贵港市| 聂拉木县| 房产| 灵山县| 天水市| 郯城县| 镇安县| 永修县| 临泉县| 封丘县| 九龙城区| 南平市| 湛江市| 临泽县| 清镇市| 泾源县| 城步| 安图县| 连江县| 沭阳县|