Jdbc的事务

    xiaoxiao2021-04-14  35

    package com.iflysse.test07; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import jdbc_util.JdbcUtil01; public class Day041301 { public static void main(String[] args) { zhuanzhang(1, 2, 500); } //将两个sql语句绑定为一个事务,必须是在同一个链接下面; public static void zhuanzhang(int id1,int id2,int cm){ String sql1 = "update userinfo set money = money - ? where id =?"; String sql2 = "update userinfo set money = money + ? where id =?"; Connection conn = JdbcUtil01.getConnection(); try { //手动关闭事务的自动提交 conn.setAutoCommit(false); PreparedStatement pstat1 = conn.prepareStatement(sql1); PreparedStatement pstat2 = conn.prepareStatement(sql2); pstat1.setInt(1, cm); pstat1.setInt(2, id1); pstat2.setInt(1, cm); pstat2.setInt(2, id2); pstat1.executeUpdate(); //在两个操作之间设置异常,看看结果 // System.out.println(10/0); pstat2.executeUpdate(); //手动的提交事务 conn.commit(); JdbcUtil01.close(null, pstat1, null); JdbcUtil01.close(conn, pstat2, null); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); try { //出现异常执行回滚的操作 conn.rollback(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } }
    转载请注明原文地址: https://ju.6miu.com/read-669686.html

    最新回复(0)