`

JAVA基础 之 JDBC事务

    博客分类:
  • java
阅读更多

概述:

   1.当一个逻辑执行单元执行一系列的操作时,要么全部执行,要么全部不执行。

      不能出现执行一半的情况。例如:取款机吐钱要做的操作:修改卡数据-吐钱

      但是 在修改卡数据的时候 取款机故障了~,卡里的钱是扣了 但是没有吐出RMB,这就出大麻烦了

      所以修改卡数据和吐钱 要么全执行,要么全不执行,上面的那种情况,取款机需要回滚,将执行过的修改卡数据的操作回到原来的状态。

    2.4个特性 ACID(原子性、一致性、隔离性和持久性)

    3.jdbc中的事务,只要设置是否自动提交即可

       关闭自动提交,开启事务

       开启自动提交,关闭事务

 

package com.cxy.jdbc;

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

/**
 * @author cxy
 */
public class TransactionTest
{
	public static void main(String[] args) throws Exception
	{
		Class.forName("com.mysql.jdbc.Driver");
		try
		(
			Connection con=DriverManager.getConnection("jdbc:mysql://localhost/dbtest", "root", "root");
			Statement stmt=con.createStatement();
		)
		{
			System.out.println("开启事务");
			con.setAutoCommit(false);  //关闭自动提交开启事务
			stmt.executeUpdate("insert into t_student values ('sw1','事务1','男')");
			stmt.executeUpdate("insert into t_student values ('sw2','事务2','女')");
			con.rollback();
			stmt.executeUpdate("insert into t_student values ('sw3','事务3','男')");
			stmt.executeUpdate("insert into t_student values ('sw4','事务4','女')");
			con.commit();  //如果你不提交那么本次操作不会对数据库造成任何
			System.out.println("事务提交");
		}catch(SQLException e)
		{
			System.out.println("数据库操作出现异常");
		}
	}

}

 

相关链接:

《Java通用型遍历结果集》

《Java基础 之 ResultSet》

 

声明:

1.原创文章,转载请标明并加本文连接。

2.文章反映个人愚见,如有异议欢迎讨论指正

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics