http://blog.sina.com.cn/s/blog_6f3ca78f01010pmj.html

当Jdbc程序向数据库获得一个Connection对象时,默认情况下这个Connection对象会自动向数据库提交在它上面发送的SQL语句。若想关闭这种默认提交方式,让多条SQL在一个事务中执行,并且保证这些语句是在同一时间共同执行的时,我们就应该为这多条语句定义一个事务。

其中,银行转账这一事例,最能说明,使用事务的重要性了。

update from account set money=money-100where name=‘a’;

update from account set money=money+100 wherename=‘b’;

因为这时,两个账户的增减变化是在一起执行的。现实生活中这种类似于同步通信的例子还有很多,这里,不再赘述。

当然,对于事务的编写,也是要遵守一定的顺序的:

首先,.设置事务的提交方式为非自动提交:

conn.setAutoCommit(false);

接下来,.将需要添加事务的代码放入try,catch块中。

然后,.在try块内添加事务的提交操作,表示操作无异常,提交事务。

conn.commit();

尤其不要忘记,.在catch块内添加回滚事务,表示操作出现异常,撤销事务:

conn.rollback();

最后,设置事务提交方式为自动提交:

conn.setAutoCommit(true);

这样,通过简单的几步,我们就可以完成对事务处理的编写了。

例:定义了一个事务方法并在方法内实现了语句之间的一致性操作

Connection con =null;

Statement st=null;

ResultSet rs=null;

PreparedStatement ps=null;

publicvoid startTransaction(){

con = DBCManager.getConnect();//获取连接对象

try {

//设置事务的提交方式为非自动提交:

con.setAutoCommit(false);

//将需要添加事务的代码一同放入try,catch块中

//创建执行语句

String sql ="delete from me where id = 7";

String sql1 = "update me set name ='chengong' ,age ='34' where id =4";

//分别执行事务

ps = con.prepareStatement(sql);

ps.executeUpdate();

ps = con.prepareStatement(sql1);

ps.executeUpdate();

//在try块内添加事务的提交操作,表示操作无异常,提交事务。

con.commit();

catch (SQLException e) {

try {

//.在catch块内添加回滚事务,表示操作出现异常,撤销事务:

con.rollback();

catch (SQLException e1) {

// TODO Auto-generatedcatch block

e1.printStackTrace();

}

e.printStackTrace();

}finally{

try {

//设置事务提交方式为自动提交:

con.setAutoCommit(true);

catch (SQLException e) {

// TODO Auto-generatedcatch block

e.printStackTrace();

}

DBCManager.release(rs, ps, con);

}

}

JDBC中事务的使用的更多相关文章

  1. day18-事务与连接池 3.jdbc中事务操作介绍

    那么我们都是通过程序操作数据库.所以要了解jdbc下怎样对事务操作.jdbc如何操作事务? 自动事务false那就不开了呗相当于开启事务. package cn.itcast.transaction; ...

  2. JDBC控制事务

    概念 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并 ...

  3. JDBC中的事务-Transaction

    事务-Transaction 某些情况下我们希望对数据库的某一操作要么整体成功,要么整体失败,经典的例子就是支付宝提现.例如我们发起了支付宝到银行卡的100元提现申请,我们希望的结果是支付宝余额减少1 ...

  4. 一、DAO设计模式 二、DAO设计模式的优化 三、JDBC中的事务,连接池的使用

    一.DAO设计模式概述###<1>概念 DAO,Data Access Object ,用于访问数据库的对象. 位于业务逻辑和数据持久化层之间,实现对数据持久化层的访问![](1.png) ...

  5. JDBC中处理事务,小Demo

    事务的四大特性(ACID):  原子性(Atomicity):事务中所有操作是不可再分割的原子单位.事务中所有操作要么全部执行成功,要么全部执行失败.  一致性(Consistency):事务执行 ...

  6. JDBC 中的事务和批处理 batch

    JDBC事务处理: 事务处理一般在事务开始前把事务提交设置为false 所有DML语句执行完成后提交事务 demo: package com.xzlf.jdbc; import java.sql.Co ...

  7. JDBC值事务

    事务的四大特性: 原子性, 一致性(比如说A给B转账,A转了之后B的账户增加了,两个都完成才叫一致性),隔离性(A给B转账,A给C转账,AB和AC并发是无关的),永久性(转账之后 不可能复原,就是说不 ...

  8. Spring总结——AOP、JDBC和事务的总结

    1.上一次总结了 Spring 的核心三大组件(Core,Beans,Context),今天总结的 AOP.JDBC和事务都可以看成是核心三大组件的应用. 其中 Spring 的事务管理又以 AOP ...

  9. 【JDBC】事务的使用

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5868750.html 关于事务的理论知识.ACID特性等等,网上太多了,在此不一一重复.本文主要着重  事务 ...

随机推荐

  1. Async callback to awaitable Task<> z

    http://blog.tedd.no/2013/09/13/async-callback-to-awaitable-task/ The Async-Await feature in .Net is ...

  2. oracle 创建索引

    一.索引简介 1.索引相当于目录 2.索引是通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率. 3.索引的创建要适度,多了会影响增删改的效率,少了会影响查询的效率,索引最好创建在取 ...

  3. vijosP1447 开关灯泡

    vijosP1447 开关灯泡 链接:https://vijos.org/p/1447 [思路] 数学+高精度. 分析题目:题中有言,i时刻将其所有倍数的灯熄灭,由此得知一个数有多少个倍数就会被操作多 ...

  4. HDU 1117 免费馅饼 二维动态规划

    思路:a[i][j]表示j秒在i位置的数目,dp[i][j]表示j秒在i位置最大可以收到的数目. 转移方程:d[i][j]=max(dp[i-1][j],dp[i-1][j-1],dp[i-1][j+ ...

  5. shell常用命令总结

    统计文件行数 wc -l filename grep -c "" filename sed -n '$=' filename awk 'END{print NR}' filenam ...

  6. HW5.13

    public class Solution { public static void main(String[] args) { System.out.printf("%s\t%s\n&qu ...

  7. Windows 服务 创建 和 安装 -摘自网络

    What a Windows Service is Enables you to create long-running executable applications that run in the ...

  8. MySQL索引和优化查询

    索引和优化查询 恰当的索引可以加快查询速度,可以分为四种类型:主键.唯一索引.全文索引.普通索引. 主键:唯一且没有null值. create table pk_test(f1 int not nul ...

  9. Java-日历表

    效果图 import java.util.*; import java.text.*; class demo { public static void main(String[] args) { // ...

  10. 什么是Scale Up和Scale Out?

    导读:Scale Out(也就是Scale horizontally)横向扩展,向外扩展 Scale Up(也就是Scale vertically)纵向扩展,向上扩展 无论是Scale Out,Sca ...