`
qjbagu
  • 浏览: 23236 次
  • 性别: 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方式进行事务处理 #### 一、引言 在现代软件开发过程中,数据一致性是非常关键的一个方面,特别是在涉及到多个数据库操作时。本文将详细介绍如何在JavaBean中利用JDBC(Java Database ...

    JDBC事务处理机制探秘

    首先,我们来看JavaBean中如何使用JDBC进行事务处理。在JDBC中,默认情况下,每个单独的SQL语句都是在一个自动提交(auto-commit)的事务中执行的,这意味着每执行完一个SQL语句,数据库就会立即提交事务。如果想要...

    JDBC,javabean的应用

    通过JDBC,你可以执行SQL语句、处理结果集、管理事务以及进行错误处理等。 首先,JDBC的核心组件包括DriverManager、Connection、Statement、PreparedStatement和ResultSet。`DriverManager`负责注册和管理数据库...

    jsf+javabean+jdbc完成对表增删查改

    在本项目中,“jsf+javabean+jdbc完成对表增删查改”指的是使用JSF与JavaBean以及JDBC技术来实现对数据库中表格的基本操作:添加(Insert)、删除(Delete)、查询(Query)和修改(Update)。 首先,让我们深入...

    Jsp-Servlet-JavaBean企业事务管理系统

    在"Jsp-Servlet-JavaBean企业事务管理系统"中,Servlet充当了控制器的角色,接收来自JSP的请求,调用相应的业务逻辑,处理数据,然后将结果返回给JSP进行展示。Servlet通过HttpServlet类进行扩展,实现doGet和doPost...

    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...

    自助存款系统 jsp jdbc javabean 机试题目

    8. **测试**:描述中提到已进行测试且无问题,这包括单元测试(对JavaBean的业务逻辑进行验证)、集成测试(检查JSP、Servlet和JavaBean的协作)以及系统测试(模拟真实用户进行存款操作)。 9. **用户交互设计**:...

    JSP+JavaBean+JDBC写的eBank

    6. **事务管理**:在JDBC中,可以使用Connection对象的setAutoCommit(false)来手动管理事务,确保如转账这样的操作在成功执行所有步骤后才提交,或者在发生错误时全部回滚,以保持数据的一致性。 7. **错误处理和...

    java与数据库常用代码.rar_Java bean_java SQLsever_javabean 数据库_jsp jdbc

    在"jsp与jdbc的连接"部分,描述的是如何在JSP页面中使用JDBC来与数据库进行交互,通常包括加载驱动、建立连接、创建Statement或PreparedStatement对象、执行SQL以及处理结果集。 在JSP中直接与SQL Server连接,通常...

    java中数据库事务的处理

    下面是一个简单的示例,展示了如何在JavaBean中使用JDBC进行事务处理: ```java try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS)) { conn.setAutoCommit(false); // 关闭自动提交 // ...

    购物车通过jdbc和javabean来实现

    在这个实验中,我们主要探讨如何使用JavaBean和JDBC来实现一个简单的购物车功能。购物车在电子商务系统中起着至关重要的作用,它允许用户选择商品并暂存,以便于后续的结账操作。在这个实例中,我们将关注以下几个...

    基于JSP和JDBC的图书管理系统

    4. **JSP页面展示**:在JSP页面上,可以使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)来获取JavaBean中的数据并显示在页面上。例如,使用c:forEach标签遍历图书列表。 5. **用户...

    JAVA100例之实例88JavaBean连接数据库

    在JavaBean中使用JDBC时,通常会创建一个包含数据库连接方法的类,如`DBConnection.java`。 以下是实现JavaBean连接数据库的基本步骤: 1. **导入所需的JDBC库**:在Java项目中,需要引入JDBC驱动的jar包。例如,...

    JDBC入门中文文档

    JDBC事务处理** - **自动提交**:默认情况下,每次SQL操作都会自动提交,可以通过`conn.setAutoCommit(false)`关闭自动提交。 - **手动提交**:使用`conn.commit()`提交事务,`conn.rollback()`回滚事务。 - **保存...

    对数据库操作的javabean

    总结来说,"对数据库操作的javabean"是一种通过JavaBean进行数据库交互的方式,它利用JDBC API连接数据库,执行SQL语句,并封装这些操作以提供给其他组件使用。通过这种方式,我们可以创建更健壮、可维护的Java应用...

    学生管理系统 jsp+servlet+javabean

    这个文件名可能表示系统中与学生信息相关的一部分内容,可能是数据库表名,也可能是一个包含学生信息的JavaBean类,或者是用来显示和处理学生信息的JSP页面。具体功能需要查看源代码才能确定,但可以推测这部分代码...

    使用javabean封装数据库操作1.rar_bean_javabean_javabean 数据库_planet7r1

    7. **ORM框架**:虽然可以手动使用JavaBean和JDBC进行数据库操作,但现代开发中更倾向于使用ORM(Object-Relational Mapping)框架,如Hibernate或MyBatis。这些框架自动处理了Java对象与数据库之间的映射,大大简化...

    Mysql javaBean

    9. **ORM框架**:虽然可以直接使用JavaBean和JDBC进行数据库操作,但现代开发中更倾向于使用ORM(Object-Relational Mapping)框架,如Hibernate或MyBatis,它们能简化数据库操作,提高开发效率。 总结来说,`Mysql...

    jsp+javabean对数据库表的操作

    在JSP和JavaBean中,连接数据库通常需要使用JDBC(Java Database Connectivity)。JDBC是Java标准库中的一个接口,提供了与多种数据库系统交互的能力。首先,我们需要在JavaBean中加载数据库驱动,建立数据库连接,...

Global site tag (gtag.js) - Google Analytics