成都网站建设设计

将想法与焦点和您一起共享

java之JDBC事务怎么应用

这篇文章主要介绍“java之JDBC事务怎么应用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java之JDBC事务怎么应用”文章能帮助大家解决问题。

从网站建设到定制行业解决方案,为提供成都做网站、网站设计服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。创新互联将不断加快创新步伐,提供优质的建站服务。

1.JDBC对事务的支持

JDBC 提供了5种不同的事务隔离级别,在 Connection 中进行了定义。

TRANSACTION_NONE JDBC           驱动不支持事务
TRANSACTION_READ_UNCOMMITTED    允许脏读、不可重复读和幻读。
TRANSACTION_READ_COMMITTED      禁止脏读,但允许不可重复读和幻读。
TRANSACTION_REPEATABLE_READ     禁止脏读和不可重复读,单运行幻读。
TRANSACTION_SERIALIZABLE        禁止脏读、不可重复读和幻读。

2.执行步骤

(1)设置事务的提交方式为非自动提交:conn.setAutoCommit(false);

(2)将需要添加事务的代码放入try,catch块中。

(3)在try块内添加事务的提交操作,表示操作无异常,提交事务:conn.commit();尤其不要忘记,在catch块内添加回滚事务,表示操作出现异常,撤销事务:conn.rollback();(4)设置事务提交方式为自动提交:conn.setAutoCommit(true)。

3.实例

    try (Connection c = DriverManager.getConnection("jdbc:MySQL://127.0.0.1:3306/how2java?characterEncoding=UTF-8","root", "admin");
        Statement s = c.createStatement();) {
 
        // 有事务的前提下
        // 在事务中的多个操作,要么都成功,要么都失败
 
        c.setAutoCommit(false);
 
        // 加血的SQL
        String sql1 = "update hero set hp = hp +1 where id = 22";
        s.execute(sql1);
 
        // 减血的SQL
        // 不小心写错写成了 updata(而非update)
 
        String sql2 = "updata hero set hp = hp -1 where id = 22";
        s.execute(sql2);
 
        // 手动提交
        c.commit();
 
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
 
}

关于“java之JDBC事务怎么应用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注创新互联行业资讯频道,小编每天都会为大家更新不同的知识点。


本文标题:java之JDBC事务怎么应用
文章URL:http://chengdu.cdxwcx.cn/article/gdipeo.html