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(); } } }