import java.sql.*;
/**
* JDBC编程事务控制模型备忘
*
* @author : leizhimin,2008-8-21 14:48:42。<p>
*/
public class JdbcTxText {
public static void main(String[] args) {
test();
}
public static void test() {
Connection conn = null;
//定义一个回滚点
Savepoint savepoint1 = null;
try {
//获取一个数据库连接
conn = DriverManager.getConnection("url", "user", "password");
//设置不自动提交,相当于开启了事务
conn.setAutoCommit(false);
//设置JDBC事务的级别
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
//创建一个用于执行静态 SQL 语句并返回它所生成结果的对象
Statement stmt = conn.createStatement();
//执行连个SQL语句,在同一个事务中
stmt.executeUpdate("insert into test values(1,'aaa')");
//定义一个回滚到(保存点)savepoint1,在事务失败的时候,可以回滚到定义的回滚点
savepoint1 = conn.setSavepoint("insert_end");
stmt.executeUpdate("update test set name = 'bbb' where id =1");
//提交事务
conn.commit();
} catch (SQLException e) {
try {
//当事务失败时候,回滚到(保存点)savepoint1
conn.rollback(savepoint1);
// 当本事务中的插入和更新SQL其中一个执行异常的时候,整个事务回滚
//conn.rollback();
} catch (SQLException e1) {
throw new RuntimeException("回滚事务发生异常!", e);
}
throw new RuntimeException("执行事务发生异常!", e);
} finally {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
throw new RuntimeException("关闭数据库连接发生异常!", e);
}
}
}
}
}
上面代码中:
//设置JDBC事务的级别
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
//当事务失败时候,回滚到(保存点)savepoint1
conn.rollback(savepoint1);
JDBC的事务级别设置,保存点(或回滚点)的设置与数据库和JDBC的驱动的实现有关系,并非完全支持,但是不支持也不会出错。
分享到:
相关推荐
### Java数据库编程知识点详解 #### 一、Java在企业级应用中的角色 - **企业级应用的特点**:企业级应用通常具有高度复杂性、高可用性、安全性等特性。它们通常涉及多用户环境下的数据处理任务,如事务管理、安全...
这个备忘系列将探讨 Spring 的主要组成部分和使用方法。 **IoC 容器** IoC 是 Spring 的核心概念,它通过反转对象创建和管理的控制权,使得开发者不再手动实例化对象,而是由框架负责对象的生命周期。Spring 提供...
【标题】"精选_基于Jsp和MySQL实现的个人记事备忘系统_源码打包"揭示了这个项目的核心——一个使用JSP(JavaServer Pages)技术和MySQL数据库构建的个人记事本或备忘录应用。这样的系统允许用户在线创建、编辑、存储...
2. **Spring2.5**:Spring框架是Java企业级应用的核心框架,提供了依赖注入、面向切面编程、事务管理等功能。其核心模块包括`spring-aop.jar`、`spring-beans.jar`、`spring-context.jar`、`spring-core.jar`、`...
template模板方法模式、memento备忘录模式、observer观察者模式、command命令模式、state状态模式、strategy策略模式、mediator调停者模式、interpreter解释器模式、visitor访问者模式、chain of responsibility责任...
- JPA和JDBC:了解JPA的规范和实现,对比JDBC的使用。 6. **设计模式** - 创建型模式:如单例、工厂、抽象工厂、建造者、原型模式。 - 结构型模式:如代理、装饰、适配器、桥接、组合、外观、享元模式。 - 行为...
在IT行业中,Java是一种广泛应用的高级编程语言,以其“一次编写,到处运行”的特性而闻名。在这个名为“个人生活助手——java”的项目中,我们显然看到了Java技术在构建一个全面的个人服务应用上的运用。下面将详细...
4. 数据库相关:JDBC操作、事务管理、索引优化、数据库设计原则等。 最后,实战经验也很重要,如: 1. 性能优化:代码优化、数据库查询优化、系统调优等。 2. 分布式系统:微服务架构、分布式缓存、消息队列...
11. **数据库相关**:SQL查询优化,事务管理,JDBC操作,以及对NoSQL数据库的理解。 12. **网络编程**:TCP/IP协议,HTTP协议,Socket编程,网络通信的基本原理。 13. **性能优化**:包括代码优化、JVM参数调整、...
【日历记事本】是一款基于Java编程语言开发的应用程序,它将传统的日历与记事本功能结合在一起,提供了一种高效、便捷的方式来管理个人事务和安排日程。这款软件设计的核心目标是帮助用户轻松地记录日常生活中的事件...
12. **数据库相关**:SQL查询优化,事务处理(ACID属性),索引原理,JDBC操作,以及对常见数据库如MySQL、Oracle的理解。 13. **设计原则与模式**:深入理解SOLID设计原则,如单一职责原则、开闭原则、里氏替换...
Java作为一门广泛使用的编程语言,其面试题涵盖了基础语法、面向对象、集合框架、多线程、网络编程、异常处理、JVM、设计模式、数据库交互、Spring框架等多个方面。以下是对这些知识点的详细解析: 1. **Java基础**...
- JDBC:数据库连接,事务管理,预编译语句。 10. **设计模式** - 创建型模式:单例、工厂、抽象工厂、建造者、原型。 - 结构型模式:适配器、装饰器、桥接、组合、外观、代理、享元。 - 行为型模式:策略、...
J2EE提供了一系列标准和技术,包括但不限于JDBC(Java Database Connectivity)、JNDI(Java Naming and Directory Interface)、RMI(Remote Method Invocation)、JMS(Java Messaging Service)、EJB(Enterprise...
31、EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的? SessionBean: Stateless Session Bean 的生命周期是由容器决定的,当客户机发出请求要建立一个Bean的实例时,EJB容器不一定要创建...