JDBC系列教程之八:事务-ACID

2018-08-29|来源: 领悟书生

事务-ACID

l  原子性(atomicity):组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分。

l  一致性(consistency):在事务处理执行前后,数据库是一致的(数据库数据完整性约束)。

l  隔离性(isolcation):一个事务处理对另一个事务处理的影响。

l  持续性(durability):事务处理的效果能够被永久保存下来 。

l  connection.setAutoCommit(false);//打开事务。

l  connection.commit();//提交事务。

l  connection.rollback();//回滚事务。

TxTest.java

package com.hyneng.jdbc;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

/**

* 2010-10-07

* @author HuangYineng

*/

public class TxTest {

   public static void main(String[] args) throws  SQLException {

      test();

   }

   static void test() throws  SQLException {

      Connection conn = null;

      Statement st = null;

      ResultSet rs = null;

      try {

          conn = JdbcUtils.getConnection();

          //关闭自动提交

          conn.setAutoCommit(false);

          conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);

         

          st = conn.createStatement();

          String sql = "update user set money=money-10 where id=1";

          st.executeUpdate(sql);

          sql = "select money from user where id=2";

          rs = st.executeQuery(sql);

          float money = 0.0f;

          if (rs.next()) {

             money = rs.getFloat("money");

          }

          if (money > 400)

             throw new RuntimeException("已经超过最大值!");

          sql = "update user set money=money+10 where id=2";

          st.executeUpdate(sql);

          //手动提交

          conn.commit();

      } catch (SQLException e) {

          if (conn != null)

             //出现异常,回滚

             conn.rollback();

          throw e;

      } finally {

          JdbcUtils.free(rs, st,  conn);

      }

   }

}


本文链接:JDBC系列教程之八:事务-ACID,转自请注明:http://www.656463.com/article/802

相关问答

更多

电脑基础.实例.上机系列教程

针对这门课程的附带,当然是教程盘啦

Painter从入门到精通系列教学视频教程

Painter从入门到精通系列教学视频教程 http://www.shouhui119.com/shouhuishipinjiaocheng/shouhuiruanjian/137.html

求破解脱壳系列教程

我教你吧!要的话就加

oracle和jdbc的视频教程哪个讲的好

你说的这两个都不是同一类东西。 学习数据库,如果重在快速入门应用:选择MYSQL。它是开源的而且网上教程很多 如果是想学习深入的话,一边看数据库概论一边学习ORACLE操作是很好的方法 如果再想深入,那么就可以在学习好ORACLE基础上学习它的存储过程 触发器和PLSQL编程 JDBC是JAVA连接各种数据库的API不是数据库

oracle和jdbc的视频教程哪个讲的好

你说的这两个都不是同一类东西。 学习数据库,如果重在快速入门应用:选择MYSQL。它是开源的而且网上教程很多 如果是想学习深入的话,一边看数据库概论一边学习ORACLE操作是很好的方法 如果再想深入,那么就可以在学习好ORACLE基础上学习它的存储过程 触发器和PLSQL编程 JDBC是JAVA连接各种数据库的API不是数据库

java教程

JAVA概述
第一部分:java入门基础
第二部分:java常用类
第三部分:jdbc系列教程
第四部分:java高级特征

相关文章

更多

最近更新

更多