Web19_事务

MySQL的事务控制:

开启事务:start transaction;

提交:commit();

回滚:rollback();

JDBC事务控制:

开启事务:setAutoCommit(false);

提交:commit();

回滚:rollback();

DBUtils的事务控制也是通过JDBC

ThreadLocal:实现的是通过线程绑定的方式传递参数

注意:控制事务的Connection必须是同一个

执行SQL的Connection与开启事务的Connection必须是同一个才能对事务进行控制

JDBC的事务控制

package com.itheima.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		// 通过jdbc去控制事务

		Connection conn = null;

		// 1.注册驱动
		try {
			Class.forName("com.mysql.jdbc.Driver");

			// 2.获得connection
			conn = DriverManager.getConnection("jdbc:mysql:///web19", "root", "root");

			// 手动开启事务
			conn.setAutoCommit(false);

			// 3.获得执行平台
			Statement stmt = conn.createStatement();

			// 4.操作sql
			int executeUpdate = stmt.executeUpdate("update account set money=5000 where name='tomm'");

			conn.commit();

			stmt.close();
			conn.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			try {
				conn.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			e.printStackTrace();
		}
	}
}
原文地址:https://www.cnblogs.com/denggelin/p/7252453.html