快速业务通道

JDBC事务编程模型备忘 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

JDBC事务编程模型备忘

时间:2011-07-28

在Spring一统天下的情况下,JDBC快没有生存余地了。不过JDBC还是Java操作数据库的基础,现在Java项目中JDBC的应用快绝迹了,有必要对JDBC的事务编程模型做个象征性的总结。

下面是示例,保证代码可以编译,但不保证能运行,呵呵。

import java.sql.*; /** * JDBC编程事务控制模型备忘 * * @author : leizhimin,2008-8-21 14:48:42。<p> */ public class JdbcTxText {    public static void main(String[] args) {      test();    }    public static void test() {      Connection conn = null;      //定义一个回滚点      Savepoint savepoint1 = null;      try {        //获取一个数据库连接        conn = DriverManager.getConnection("url", "user", "password");        //设置不自动提交,相当于开启了事务        conn.setAutoCommit(false);        //设置JDBC事务的级别        conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);        //创建一个用于执行静态 SQL 语句并返回它所生成结果的对象        Statement stmt = conn.createStatement();        //执行连个SQL语句,在同一个事务中        stmt.executeUpdate("insert into test values(1,''aaa'')");        //定义一个回滚到(保存点)savepoint1,在事务失败的时候,可以回滚到定义的回滚点        savepoint1 = conn.setSavepoint("insert_end");        stmt.executeUpdate("update test set name = ''bbb'' where id =1");        //提交事务        conn.commit();      } catch (SQLException e) {        try {          //当事务失败时候,回滚到(保存点)savepoint1          conn.rollback(savepoint1);          // 当本事务中的插入和更新SQL其中一个执行异常的时候,整个事务回滚          //conn.rollback();        } catch (SQLException e1) {          throw new RuntimeException("回滚事务发生异常!", e);        }        throw new RuntimeException("执行事务发生异常!", e);      } finally {        if (conn != null) {          try {            conn.close();          } catch (SQLException e) {            throw new RuntimeException("关闭数据库连接发生异常!", e);          }        }      }    } }

上面代码中:

//设置JDBC事务的级别 conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE); //当事务失败时候,回滚到(保存点)savepoint1 conn.rollback(savepoint1);

JDBC的事务级别设置,保存点(或回滚点)的设置与数据库和JDBC的驱动的实现有关系,并非完全支持,但是不支持也不会出错。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号