`
qjbagu
  • 浏览: 22912 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
  • wjl1174: String 不是基本的类型,所有他的变量就是一个对象,放在m ...
    静态字段问题
  • laojiang: 数据库设置缺省值或者类修改成Integer原因null是没办法 ...
    JDBC ORM
  • yin_bp: 补充说明一下连接池的配置     bboss persiste ...
    JDBC 批处理
  • yin_bp: 再贴点稍微有点点技术含量的,呵呵 看看开源j2ee 框架bbo ...
    JDBC 批处理
  • yin_bp: 贴点稍微有点点技术含量的,呵呵 有空看看开源bbossgrou ...
    JDBC 批处理

JavaBean中使用JDBC方式进行事务处理转

    博客分类:
  • JDBC
阅读更多
在JavaBean数据库操作中,一项事务是指由一条或多条对数据库更新的sql语句所组成的一个不可分割的工作单元。只有当事务中的所有操作都正常完成了,整个事务才能被提交到数据库,如果有一项操作没有完成,就必须撤消整个事务。我们通过提交commit()或是回滚rollback()来结束事务的操作。关于事务操作的方法都位于接口java.sql.Connection中。

   在第一次建立与数据库的连接时,在缺省情况下,连接是在自动提交模式下的, jdbc api中,可以通过调用setAutoCommit(false) 来禁止自动提交事务。然后就可以把多条更新数据库的sql语句做为一个事务,在所有操作完成之后,调用commit()来进行整体提交。倘若其中一项sql操作失败,就不会执行commit()方法,而是产生相应的sqlexception,此时就可以捕获异常代码块中调用rollback()方法撤消事务。下面是一个例子;

  比如:有两张表,一个记录用户帐户(useraccount),一个是系统帐(sysaccount),现在有一个用户要向系统寄钱买东西,就要此行下面两条语句:

String sql1 = "update useraccount set monery=monery-1000 where name='username'";
String sql2 = "update sysaccount set monery=monery+1000 where name='sysname'";

  但如果第一条执行了而第二条语句执行出错了就会造成不良后果。这是就可以用手动提交的方式来防止这种事情的发生:主要代码

try{
 .
 .
 .
 conn=DriverManager.getConnection("..."); //链接数据库

 conn.setAutoCommit(false);//禁止自动提交事务
 stmt = conn.Create....
 String sql1 = "update useraccount set monery=monery-1000 where name='usename'";
 String sql2 = "update sysaccount set monery=monery+1000 where name='sysname'";
 stmt=conn.createStatement();
 stmt.executeUpdate(sql1);
 stmt.executeUpdate(sql2);

 conn.commit(); //统一提交。

 }catch(SQLException e){
  conn.rollback(); //倘若其中一项sql操作失败,就不会执行commit()方法,而是产生相应的sqlexception,此时就可以捕获 异常代码块中调用rollback()方法撤消事务。
  e.printStackTrace();
 }
 finally{
  if(stmt!=null){
   stmt.close();
  }
  if(conn!=null){
   stmt.close();
  }
 }
分享到:
评论

相关推荐

    JavaBean中使用JDBC方式进行事务处理

    JavaBean中使用JDBC方式进行事务处理方案 有详细的事物处理代码

    JDBC事务处理机制探秘

    1、JavaBean中使用JDBC事务处理 在JDBC中怎样将多个SQL语句组合成一个事务呢?在JDBC中,打开一个连接对象Connection时,缺省是auto-commit模式,每个SQL语句都被当作一个事务,即每次执行一个语句,都会自动的得到...

    J2EE JNDI配置原理详解 JBOSS安装配置 Maven入门 Ant使用入门

    1.4 JavaBean中使用JDBC方式进行事务处理 1.5 JSP 隐式对象简介 1.6 Java解析XML的四种方法 1.7 struts1和truts2比较 1.8 Tomcat5启动流程与配置详解 1.9 HttpServlet详解 1.10 Ant使用入门 1.11 Maven Ant...

    JDBC 3.0数据库开发与设计

    9.2.3 使用JavaBean不使用连接池的分页显示 9.2.4 用JSP和Servlet配合实现分页显示 9.3 数据库图形文件的存取技术 9.3.1 向数据库中存储图形 9.3.2 将数据库的图象二进制数据显示成图片 9.4 Java开发中的其他...

    web JDBC数据库开发接口

    JDBC的结构; SQL指令操作数据库以及常用的SQL函数的使用; JDBC访问数据库的四种基本形式、事务处理; 分页显示以及如何利用JavaBean操作数据库; 访问Oracle数据库以及操作Oracle存储过程;

    Java连接数据库 JDBC封装类 带使用例子

    Java JDBC封装类,带增删改查例子,支持oracle,MySql,hsqldb 等,支持事务,返回数据格式 支持二维数组,MAP格式,以及javabean对象。有利于初学者DbDemo.java为demo,Connect为jdbc封装类,可以作为项目共通类使用。

    news:基于JSP+Servlet+JavaBean+JDBC(自封装的)的新闻信息发布系统

    项目: 新闻信息发布系统 Java Web项目,2015年4月应Java Web课程要求而设计的一个新闻信息系统。...主要使用JSP+Servlet+JavaBean+JDBC+DBCP技术实现;本人封装了JDBC,增加DBCP数据库连接池,从而可以控制事务。

    2014_05_12 javabean类型的辅助类存储传输接收数据.

    //生成statement对象对(数据库进行操作)(数据库的事务处理) //Statement sta=connection.createStatement(); //使用executeupdate方法添加信息(注意括号和单双引号的打法) //使用...

    Java数据库编程宝典2

    12.4.1 在JSP中使用JavaBean 12.4.2 自动类型转换 12.4.3 创建和部署JDBC LoginBean 12.5 小结 第13章 使用PreparedStatement和CallableStatement 13.1 创建和使用PreparedStatement 13.1.1 创建...

    Java数据库编程宝典4

    12.4.1 在JSP中使用JavaBean 12.4.2 自动类型转换 12.4.3 创建和部署JDBC LoginBean 12.5 小结 第13章 使用PreparedStatement和CallableStatement 13.1 创建和使用PreparedStatement 13.1.1 创建...

    Java数据库编程宝典1

    12.4.1 在JSP中使用JavaBean 12.4.2 自动类型转换 12.4.3 创建和部署JDBC LoginBean 12.5 小结 第13章 使用PreparedStatement和CallableStatement 13.1 创建和使用PreparedStatement 13.1.1 创建...

    Java数据库编程宝典3

    12.4.1 在JSP中使用JavaBean 12.4.2 自动类型转换 12.4.3 创建和部署JDBC LoginBean 12.5 小结 第13章 使用PreparedStatement和CallableStatement 13.1 创建和使用PreparedStatement 13.1.1 创建...

    JDBC封装类升级版,支持DBCP、C3P0连接池,Java连接数据库带例子

    Java JDBC封装类升级版,带增删改查例子,支持oracle,MySql,hsqldb 等,支持事务,返回数据格式 支持二维数组,MAP格式,以及javabean对象。有利于初学者DbDemo.java为demo,Connect为jdbc封装类,可以作为项目共通类...

    JavaWeb设计失物招领系统(报告书)

    在服务器端,系统使用JDBC中间件访问数据库,数据库服务器定义了本系统所需要的事务逻辑和数据逻辑。本系统使用JSP技术作为表现手段,服务器采用Tomcat 5.0.3作为JSP引擎,系统业务逻辑由JavaBean 组件完成,使用...

    Java数据库编程宝典 PDF格式

    例如,通过制作网络相册和留言板实例展现了JSP+Servlet+JavaBean开发架构的独特优势,并通过使用前沿的Struts+OJB+VM架构高效地进行了购物网站系统的开发。这样可以使读者从不同角度和不同方面深刻理解使用Java语言...

    Java相关技术(详细资料)

     8、JTS(Java transaction Service)提供存取事务处理资源的开放标准,这些事务处理资源包括事务处理应用程序、事务处理管理及监控。  在Java技术中,值得关注的还有JavaBeans,它是一个开放的标准的组件体系结构,...

    Spring.3.x企业应用开发实战(完整版).part2

    11.1.2 在DAO中使用JDBCTemplate 11.2 基本的数据操作 11.2.1 更改数据 11.2.2 返回数据库的表自增主键值 11.2.3 批量更改数据 11.2.4 查询数据 11.2.5 查询单值数据 11.2.6 调用存储过程 11.3 BLOB/CLOB类型数据的...

    Spring3.x企业应用开发实战(完整版) part1

    11.1.2 在DAO中使用JDBCTemplate 11.2 基本的数据操作 11.2.1 更改数据 11.2.2 返回数据库的表自增主键值 11.2.3 批量更改数据 11.2.4 查询数据 11.2.5 查询单值数据 11.2.6 调用存储过程 11.3 BLOB/CLOB类型数据的...

    Spring中文帮助文档

    6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...

    Java数据编程指南

    Java数据库连接(JDBC) 什么是JDBC JDBC结构 开始起步 使用JDBC 一个简单的范例 对映Java与SQL类型 处理SQL错误 ResultSet与数据库元数据 JDBC中的事务处理 一个JDBC事务范例 ...

Global site tag (gtag.js) - Google Analytics