驗證JDBC事務自動提交
阿新 • • 發佈:2021-10-26
package com.bjpowernode.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; /** * @Author:楊青 * @Time:2021/10/26 18:59 * @Description: * JDBC事務機制: * 1.jdbc中的事務是自動提交的:只要執行一條DML語句,則自動提交一次,這是jdbc預設的事務行為 * 但是在實際業務中,通常都是N條DML語句共同聯合才能完成的,必須保證這些DML語句在同一事務中同時成功或同時失敗 * 2.以下程式先驗證一下JDBC的事務是否是自動提交機制 * 測試結果: * JDBC中只要執行任意一條DML語句,就提交一次 * */ public class JDBCTest10 { public static void main(String[] args) { Connection conn=null; PreparedStatement ps=null; try { //1.類載入完成註冊驅動 Class.forName("com.mysql.jdbc.Driver"); //2.獲取連線 conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/bjpowernode","root","123456"); //3.獲取預編譯資料庫操作物件 String sql="update t_user set loginName=?,realName=? where id=?"; ps=conn.prepareStatement(sql); ps.setString(1,"java"); ps.setString(2,"Java"); ps.setInt(3,3); //4.執行sql語句 int count=ps.executeUpdate(); //執行第一條update語句 System.out.println("count:"+count); //重新賦值 ps.setString(1,"python"); ps.setString(2,"Python"); ps.setInt(3,3); count=ps.executeUpdate(); //執行第二條update語句 System.out.println("count:"+count); } catch (Exception e) { e.printStackTrace(); } finally { //6.釋放資源 if(ps!=null){ try { ps.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } if(conn!=null){ try { conn.close(); } catch (SQLException throwables) { throwables.printStackTrace(); } } } } }