您的位置:首页 > 其它

JDBC的事务(简单例子示范)

2016-03-28 00:08 302 查看
学的新知识 要记录一哈哈:

首先我们要知道事务的控制主要是三大步骤:

1,start transaction:开启事务。

2,rollback:回滚事务;(savepoint:这个是当代码运行出现错误的时候,回滚到指定的位置);

3,commit:提交事务。

接下来写个Test代码

 主要看事务是怎么发生的!
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Savepoint;

import java.sql.Statement;

import org.junit.Test;

public class test {
@Test
public void time()  {

Connection conn =null;
PreparedStatement stmt=null;
try{
//	 获取与数据库的链接
conn =   DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名", "数据库用户名", "密码");
conn.setAutoCommit(false);//默认自动提交,现在改为false手动提交

//	 创建代表SQL语句的对象(建议用PrepareStatement)
stmt =  conn.prepareStatement("sql语句银行A用户转100给B:资金减去100");
//	 执行SQL语句
stmt.executeUpdate();//根据不同的操作 增删改查 运用不同的方法

//在此设置回滚点当出现异常时操作则回滚到这个点
//Savepoint savepoint = conn.setSavepoint();//如果没有设置则回滚到第一条sql语句执行之前
stmt = conn.prepareStatement("sql语句银行B用户接收100:资金加100");
//	执行SQL语句
stmt.executeUpdate();

conn.commit();//提交事务
}catch (Exception e) {
// TODO: handle exception
if(conn!=null){
try {
conn.rollback();//rollback
} catch (SQLException e1) {
e1.printStackTrace();
}
}
}finally{
if(conn!=null){
try {
conn.commit();

} catch (SQLException e) {
e.printStackTrace();
}
}
try {
stmt.close();
conn.close();
} catch (Exception e2) {
// TODO: handle exception
}

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: