首页

关于java中实现JDBC事务控制代码示例

标签:事务控制,jdbc,Statement,DriverManager,Connection,jdbc,rollback,事务贵滚     发布时间:2015-08-05   

一、前言

数据库事务是执行业务的每个逻辑单元一系列操作,可由一个或多个SQL语句组成。如执行的SQL都能被正确的执行,则这批SQL提交将被生效,否则都不成功,通过这样的事务控制有效的保障了数据库数据的完整一致性。对于JDBC提供了事务的实现控制,默认情况事务是自动提交的,所以每次提交executeUpdate方法时都会自动提交事务操作。如果前面提交到数据库数据自动生效,后面逻辑单元的SQL提交报错,这样就会因为非功能性问题(服务器宕机、硬件瓶颈等)破坏业务系统流程数据有效进行。解决这样的方法,先关闭JDBC自动提交功能,通过程序代码段进行控制,发生异常回滚代码。

二、代码示例

public static void  main(String[] args){ @b@   Connection  conn=null; @b@   try{@b@@b@        Class.forName("oracle.jdbc.driver.OracleDriver");@b@        String url="jdbc:oracle:thin:@localhost:1521:xwood";@b@        conn=DriverManager.getConnection(url,"test","123456");@b@        //关闭自动提交@b@        conn.setAutoCommit(false);@b@        Statement stmt=conn.createStatement();@b@        //执行一批sql提交操作@b@        stmt.executeUpdate("insert  into  user(1,'张三',32)");@b@        stmt.executeUpdate("insert  into  user('2',李四,23)");@b@        stmt.executeUpdate("update user  set  name='test'  where id=3");@b@        //如不发生异常就提交事务@b@        conn.commit();@b@        stmt.close();@b@        conn.close();  @b@  @b@  }catch(Exception e){ @b@      try{@b@          conn.rollback();//发送异常回滚@b@      }catch(Exception ee){@b@          ee.printStackTrace();@b@      }@b@    @b@  }@b@        @b@}

三、总结

事务控制执行一批SQl整体都被正确执行,已保障整体业务流程数据的完整一致性。对于JDBC事务,具体使用commit和rollback方法执行事务的提交和回滚