java程序中如何使用事务
在java操作数据库时,为了保证数据的一致性,比如转账操作
1)从一个账户减掉10$
2) 在另一个账户上加上10$
如何使用事务?
package Test;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Connection;
public class TestTrans {
public static void main(String[] args) {
//事务案例
Connection ct = null;
try {
//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//得到连接
ct = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","tiger");
//加入事务处理
//系统默认的是自动提交,所以加入事务处理需要将默认提交设置成false
ct.setAutoCommit(false);//设置不能默认提交
Statement sm = ct.createStatement();
//从scott的sal-100
sm.executeUpdate("update kkkk set sal=sal-100 where ename='SCOTT'");
//int i=7/0;
//从SMITH的sal+100
sm.executeUpdate("update kkkk set sal=sal+100 where ename='SMITH'");
//提交事务
ct.commit();
//关闭资源
sm.close();
ct.close();
} catch (Exception e) {
//如果发生异常,就回滚
try {
ct.rollback();//rollback本身就会发生异常
} catch (Exception ex) {
ex.printStackTrace();
}
e.printStackTrace();
}
}
}