javaSE JDBC, 事务, MySql事务

MySql事务:MySql默认为每条sql语句自动开启事务,并自动提交事务
开启事务:conn.setAutoCommit(false);
提交事务:conn.commit();
回滚事务:conn.rollback();


JDBCDemo.java:

package com.xxx.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) {
		
		Connection conn = null;
		try {
			//1、注册驱动
			Class.forName("com.mysql.jdbc.Driver");
			//2、获得connection
			conn = DriverManager.getConnection("jdbc:mysql:///web19", "root", "root");
			
			//手动开启事务 (MySql默认是为每条sql语句自动开启事务,并自动提交)
			conn.setAutoCommit(false);
			
			//3、获得sql执行者
			Statement stmt = conn.createStatement(); // 执行sql的conn必须和开启事务的conn保持一致。
			
			//4、执行sql
			stmt.executeUpdate("update account set money=5000 where name='tom'");
						
			//提交事务 (结束事务;建议放在finally中,即使是回滚也需要结束事务)
			conn.commit();
			
			stmt.close();
			conn.close();
		} catch (Exception e) {
			try {
				conn.rollback();  // 事务回滚
			} catch (SQLException e1) {
				e1.printStackTrace();
			}
			e.printStackTrace();
		}
		
	}
	
}


猜你喜欢

转载自blog.csdn.net/houyanhua1/article/details/80888028