在数据库操作中,一项事务是指由一条或多条对数据库更新的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();
}
}
分享到:
相关推荐
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...
JavaBean 中使用 JDBC 方式进行事务处理实例: 有一个订单库存管理系统,每一次生成订单的同时我们都要消减库存。通常来说订单和库存在数据库里是分两张表来保存的:订单表,库存表。每一次追加一个订单实际上需要...
首先,我们来看JavaBean中如何使用JDBC进行事务处理。在JDBC中,默认情况下,每个单独的SQL语句都是在一个自动提交(auto-commit)的事务中执行的,这意味着每执行完一个SQL语句,数据库就会立即提交事务。如果想要...
通过JDBC,你可以执行SQL语句、处理结果集、管理事务以及进行错误处理等。 首先,JDBC的核心组件包括DriverManager、Connection、Statement、PreparedStatement和ResultSet。`DriverManager`负责注册和管理数据库...
在本项目中,“jsf+javabean+jdbc完成对表增删查改”指的是使用JSF与JavaBean以及JDBC技术来实现对数据库中表格的基本操作:添加(Insert)、删除(Delete)、查询(Query)和修改(Update)。 首先,让我们深入...
在"Jsp-Servlet-JavaBean企业事务管理系统"中,Servlet充当了控制器的角色,接收来自JSP的请求,调用相应的业务逻辑,处理数据,然后将结果返回给JSP进行展示。Servlet通过HttpServlet类进行扩展,实现doGet和doPost...
6. **事务管理**:在JDBC中,可以使用Connection对象的setAutoCommit(false)来手动管理事务,确保如转账这样的操作在成功执行所有步骤后才提交,或者在发生错误时全部回滚,以保持数据的一致性。 7. **错误处理和...
8. **测试**:描述中提到已进行测试且无问题,这包括单元测试(对JavaBean的业务逻辑进行验证)、集成测试(检查JSP、Servlet和JavaBean的协作)以及系统测试(模拟真实用户进行存款操作)。 9. **用户交互设计**:...
下面是一个简单的示例,展示了如何在JavaBean中使用JDBC进行事务处理: ```java try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS)) { conn.setAutoCommit(false); // 关闭自动提交 // ...
在"jsp与jdbc的连接"部分,描述的是如何在JSP页面中使用JDBC来与数据库进行交互,通常包括加载驱动、建立连接、创建Statement或PreparedStatement对象、执行SQL以及处理结果集。 在JSP中直接与SQL Server连接,通常...
在这个实验中,我们主要探讨如何使用JavaBean和JDBC来实现一个简单的购物车功能。购物车在电子商务系统中起着至关重要的作用,它允许用户选择商品并暂存,以便于后续的结账操作。在这个实例中,我们将关注以下几个...
4. **JSP页面展示**:在JSP页面上,可以使用EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)来获取JavaBean中的数据并显示在页面上。例如,使用c:forEach标签遍历图书列表。 5. **用户...
在JavaBean中使用JDBC时,通常会创建一个包含数据库连接方法的类,如`DBConnection.java`。 以下是实现JavaBean连接数据库的基本步骤: 1. **导入所需的JDBC库**:在Java项目中,需要引入JDBC驱动的jar包。例如,...
总结来说,"对数据库操作的javabean"是一种通过JavaBean进行数据库交互的方式,它利用JDBC API连接数据库,执行SQL语句,并封装这些操作以提供给其他组件使用。通过这种方式,我们可以创建更健壮、可维护的Java应用...
JDBC事务处理** - **自动提交**:默认情况下,每次SQL操作都会自动提交,可以通过`conn.setAutoCommit(false)`关闭自动提交。 - **手动提交**:使用`conn.commit()`提交事务,`conn.rollback()`回滚事务。 - **保存...
这个文件名可能表示系统中与学生信息相关的一部分内容,可能是数据库表名,也可能是一个包含学生信息的JavaBean类,或者是用来显示和处理学生信息的JSP页面。具体功能需要查看源代码才能确定,但可以推测这部分代码...
7. **ORM框架**:虽然可以手动使用JavaBean和JDBC进行数据库操作,但现代开发中更倾向于使用ORM(Object-Relational Mapping)框架,如Hibernate或MyBatis。这些框架自动处理了Java对象与数据库之间的映射,大大简化...
在JSP和JavaBean中,连接数据库通常需要使用JDBC(Java Database Connectivity)。JDBC是Java标准库中的一个接口,提供了与多种数据库系统交互的能力。首先,我们需要在JavaBean中加载数据库驱动,建立数据库连接,...