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(); } } } } }