`
meiyoudao
  • 浏览: 89761 次
  • 性别: Icon_minigender_1
  • 来自: 冲脉
社区版块
存档分类
最新评论

JDBC事务控制

阅读更多
con.setAutoCommit(false);//设置事务为手动控制  
con.commit();//提交事务  
con.rollback();//回滚事务  


st.executeUpdate(sql);
sp = conn.setSavepoint();//1.获取事务标志位

conn.rollback(sp);//2.回滚到事务标志位
conn.commit();//3.事务提交


//设置事务隔离级别. Connection类定义了一些事务级别常量
con.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);


//多个数据源操作事务的时候,需要JTA容器支持.tomcat不支持JTA.




//返回主键
PreparedStatement ps = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
		ResultSet rs = ps.getGeneratedKeys();



================================================================================

事务隔离级别

隔离级别                                脏读      不可重复读    幻读

读未提交(Read uncommitted)               V            V          V
读已提交(Read committed)                 X            V          V
可重复读(Repeatable read)                X            X          V
可序列化(Serializable)                   X            X          X

================================================================================
隔离级别(isolation level)



隔离级别定义了事务与事务之间的隔离程度。

隔离级别与并发性是互为矛盾的:隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好。

ANSI/ISO SQL92标准定义了一些数据库操作的隔离级别:

未提交读(read uncommitted)

提交读(read committed)

重复读(repeatable read)

序列化(serializable)

通过一些现象,可以反映出隔离级别的效果。这些现象有:

更新丢失(lost update):当系统允许两个事务同时更新同一数据是,发生更新丢失。

脏读(dirty read):当一个事务读取另一个事务尚未提交的修改时,产生脏读。

非重复读(nonrepeatable read):同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生非重复读。(A transaction rereads data it has previously read and finds that another committed transaction has modified or deleted the data.  )

幻像(phantom read):同一查询在同一事务中多次进行,由于其他提交事务所做的插入操作,每次返回不同的结果集,此时发生幻像读。(A transaction reexecutes a query returning a set of rows that satisfies a search condition and finds that another committed transaction has inserted additional rows that satisfy the condition.  )

================================================================================

--mysql查询当前用户
mysql> select user();

--mysql查询当前事务处理级别
mysql> select @@tx_isolation;

--mysql设置隔离级别
mysql> set transaction isolation level read uncommitted;
分享到:
评论

相关推荐

    JDBC事务控制--讲述如何控制JDBC事务

    ### JDBC事务控制详解 在数据库应用开发中,事务管理是一项重要的功能,它确保了一系列操作能够作为一个整体被正确地执行或回滚。Java Database Connectivity (JDBC) 是 Java 平台中用于连接数据库的标准 API,提供...

    分层架构下的纯JDBC事务控制示例项目

    非常常用的JavaEE四层架构下的纯JDBC事务控制简单解决方案。Eclipse工程。详情参看:http://blog.csdn.net/qjyong/archive/2010/04/08/5464835.aspx

    小码农的代码(二)----------SpringJDBC事务控制

    本篇文章我们将深入探讨Spring JDBC事务控制,这是Spring框架中处理数据持久化的一个关键特性。Spring JDBC提供了对数据库事务的高级封装,使得开发者能够方便、高效地管理事务,而无需过多关注底层实现细节。 首先...

    JDBC事务管理的简单实现

    "JDBC事务管理的简单实现" 在JDBC编程中,事务管理是非常重要的一部分。为了实现数据一致性,需要在代码中显示的调用Connection方法的事务相关API来完成工作。下面是关于JDBC事务管理的简单实现的知识点。 一、...

    JdbcTemplate的事务控制.docx

    当使用`JdbcTemplate`结合Spring框架时,可以采用与原生JDBC事务控制类似的方法,但在Spring环境中进行管理。以下是一个使用Druid数据库连接池的示例代码: ```java @RequestMapping("/druidData1") public String ...

    JDBC的事务初探

    **JDBC事务初探** Java Database Connectivity (JDBC) 是Java平台中用于访问数据库的标准API。在处理数据库操作时,事务管理是确保数据一致性、完整性和持久性的重要机制。本篇将深入探讨JDBC中的事务处理,以及...

    JDBC事务管理.docx

    JDBC事务管理是数据库...总之,JDBC事务管理是确保数据库操作正确性和一致性的关键,通过理解和应用ACID原则以及适当的并发控制机制,开发人员可以有效地处理并发环境下的事务处理,保证系统的稳定性和数据的完整性。

    JDBC事务 JTA事务 传播特性 隔离级别

    **JDBC事务**主要针对单个数据库连接,由数据库管理系统(DBMS)自身管理事务。JDBC提供了`Connection`对象的`commit()`和`rollback()`方法用于提交和回滚事务。这是简单的单阶段提交,适用于单一数据源的情况。 **...

    spring JDBC事务管理

    标题中的“Spring JDBC事务管理”是指在Spring框架中如何利用JDBC进行数据库操作时的事务控制。Spring提供了多种方式来管理事务,使得开发者能够在复杂的业务逻辑中更好地控制数据的持久化过程,确保数据的一致性和...

    JDBC事务管理项目

    “JDBC事务管理项目”涵盖了如何在Java应用中利用JDBC进行事务控制,包括开启手动事务、提交、回滚以及设置事务隔离级别等。理解并掌握这些知识对于开发健壮的数据库应用至关重要,能够确保数据的完整性和一致性。

    JDBC事务处理机制探秘

    `UserTransaction`接口主要用于开始、提交和回滚事务,而`TransactionManager`接口则提供了更精细的事务控制,如挂起和恢复事务。 在EJB(Enterprise JavaBeans)环境中,SessionBean可以利用容器提供的事务管理...

    Oracle+MySql JDBC demo

    此外,JDBC事务控制也是重要的一环,通过`Connection`对象的`setAutoCommit()`和`commit()`/`rollback()`方法可以实现事务的开始、提交和回滚。 最后,理解JDBC异常处理也很关键,常见的如`SQLException`,需要正确...

    spring分别与jdbc和hibernate结合的事务控制--案例

    首先,我们来看Spring与JDBC的事务控制。Spring提供了一种声明式事务管理的方式,允许开发者通过在方法上添加@Transactional注解来开启事务。例如,在Service层的方法上添加此注解,Spring会在方法执行前后自动处理...

    jdbc事务及分页

    ### JDBC事务管理与分页策略详解 在Java开发中,JDBC(Java Database Connectivity)作为连接数据库的标准API,被广泛应用于数据操作。...在实际开发中,应根据具体需求和数据规模选择最合适的事务控制和分页方法。

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

    为了能够手动控制事务,需要调用`Connection.setAutoCommit(false)`来关闭这一模式。 3. **执行SQL语句**:接下来就可以执行一系列的SQL语句了。这些语句可以包括插入、更新或删除等操作。 4. **提交或回滚事务**...

    开源数据库连接池

    在这个压缩包“开源数据库连接池”中,我们找到了几个主流的Java数据库连接池实现,包括c3p0、DBCP等,以及与JDBC事务控制相关的PPT资料。以下将详细介绍这些内容。 首先,c3p0是一个开源的JDBC连接池,由Miquel ...

    jdbc.rar_数据库操作

    在IT行业中,数据库是存储和管理数据的核心工具,而JDBC(Java Database Connectivity)则是Java编程语言中用于访问和处理数据库的标准接口。...同时,这个转账业务场景也是对JDBC事务控制和SQL操作能力的很好实践。

Global site tag (gtag.js) - Google Analytics