bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

使用Java怎么處理mysql事務

本篇文章給大家分享的是有關使用Java怎么處理MySQL事務,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

成都創新互聯始終堅持【策劃先行,效果至上】的經營理念,通過多達10年累計超上千家客戶的網站建設總結了一套系統有效的全網營銷解決方案,現已廣泛運用于各行各業的客戶,其中包括:成都樓梯護欄等企業,備受客戶贊揚。

1、事務是一組要么同時執行成功,要么同時執行失敗的sql語句。是數據庫操作的一個執行單元。

2、事物的四大特點:

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

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

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

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

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;
/**
 * 事務的基本用法
 *
 */
public class Test {
  public static void main(String[] args) {
    Connection conn = null;
    PreparedStatement ps1 = null;
    PreparedStatement ps2 = null;
    try {
      //加載驅動類
      Class.forName("com.mysql.jdbc.Driver");
      conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testjdbc","root","123456");
      conn.setAutoCommit(false); //JDBC中默認是true,自動提交事務
      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();//提交事務
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
      try {
        conn.rollback();//某一條數據添加失敗時,回滾
      } 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();
      }
    }
  }
}

這段代碼是正確的結果。運行結果:

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

查看數據庫,插入了兩條數據。

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

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

運行結果:

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

以上就是使用Java怎么處理mysql事務,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注創新互聯行業資訊頻道。

網站欄目:使用Java怎么處理mysql事務
轉載注明:http://vcdvsql.cn/article22/gdisjc.html

成都網站建設公司_創新互聯,為您提供移動網站建設網站內鏈用戶體驗微信公眾號外貿網站建設營銷型網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

小程序開發