-
JDBC 事务级别10
请问在事务级别上怎么设置比较好!
都是在什么操作中设置,哪一个级别好一点!
需不需要在update,delete select 方法上加上synchronized呢?
问题补充:
要是对数据完整性要求比较高,
比如政府系统,
在线人数多,操作频繁,应该如何去设置事务的级别?
感觉加上synchronized会影响效率,不加有怕会出现不正确数据。
如何避免呢?
要是把级别设置最高!会不会好一点。
还是怎么做比较好一点!
2008年10月18日 15:35
2个答案 按时间排序 按投票排序
-
采纳的答案
对于同时运行的多个事务,当这些事务访问数据库中相同的数据时,如果没有采取必要的隔离机制,就会导致各种并发问题,这些并发问题可归纳为以下几类:
A.第一类丢失更新:撤销一个事务时,把其他事务已提交的更新数据覆盖。
B.脏读:一个事务读到另一个事务为提交的更新数据。
C.虚读:一个事务读到另一个事务已提交的新插入的数据。
D.不可重复读:一个事务读到另一个事务已提交的更新数据。
E.第二类丢失更新:这是不可重复读中的特例,一个事务覆盖另一个事务已提交的更新数据。
数据库系统提供了四种事务隔离级别供用户选择:
A.Serializable(串行化):一个事务在执行过程中完全看不到其他事务对数据库所做的更新。
B.Repeatable Read(可重复读):一个事务在执行过程中可以看到其他事务已经提交的新插入的记录,但是不能看到其他其他事务对已有记录的更新。
C.Read Commited(读已提交数据):一个事务在执行过程中可以看到其他事务已经提交的新插入的记录,而且能看到其他事务已经提交的对已有记录的更新。
D.Read Uncommitted(读未提交数据):一个事务在执行过程中可以拷打其他事务没有提交的新插入的记录,而且能看到其他事务没有提交的对已有记录的更新。
隔离级别越高,越能保证数据的完整性和一致性,但是对并发性能的影响也越大。对于多数应用程序,可以有优先考虑把数据库系统的隔离级别设为Read Commited,它能够避免脏读,而且具有较好的并发性能。尽管它会导致不可重复读、虚读和第二类丢失更新这些并发问题,在可能出现这类问题的个别场合,可以由应用程序采用悲观锁或乐观锁来控制。
当数据库系统采用read Commited隔离级别时,会导致不可重复读喝第二类丢失更新的并发问题,可以在应用程序中采用悲观锁或乐观锁来避免这类问题。从应用程序的角度,锁可以分为以下几类:
A.悲观锁:指在应用程序中显示的为数据资源加锁。尽管能防止丢失更新和不可重复读这类并发问题,但是它会影响并发性能,因此应该谨慎地使用。
B.乐观锁:乐观锁假定当前事务操作数据资源时,不回有其他事务同时访问该数据资源,因此完全依靠数据库的隔离级别来自动管理锁的工作。应用程序采用版本控制手段来避免可能出现的并发问题。
这样说可以吗?你可以根据你的实际的系统运行情况选定事务级别啊2008年10月18日 18:52
-
事务级别一般默认就可以啊,处除非你有什么特殊需要
update,delete select 方法上加上synchronized这个要看你做什么东西了
一般对多个表大量数据的长时间操作加上synchronized
比如说在系统里对数据库的导入和导出2008年10月18日 15:54
相关推荐
**JDBC事务**主要针对单个数据库连接,由数据库管理系统(DBMS)自身管理事务。JDBC提供了`Connection`对象的`commit()`和`rollback()`方法用于提交和回滚事务。这是简单的单阶段提交,适用于单一数据源的情况。 **...
JDBC事务管理是数据库操作的重要组成部分,特别是在多用户并发访问数据库的环境中,保证数据的一致性和完整性至关重要。本文主要探讨了事务的基本概念、ACID原则、数据库并发问题以及解决方案。 首先,事务是数据库...
总结,JDBC事务是Java与数据库交互时的关键部分,通过理解事务的概念、级别以及如何在JDBC中控制事务,可以编写出更加健壮、安全的数据库应用程序。在实际项目中,我们还需要关注异常处理、资源管理和事务策略的选择...
### JDBC事务控制详解 在数据库应用开发中,事务管理是一项重要的功能,它确保了一系列操作能够作为一个整体被正确地执行或回滚。Java Database Connectivity (JDBC) 是 Java 平台中用于连接数据库的标准 API,提供...
标题中的“Spring JDBC事务管理”是指在Spring框架中如何利用JDBC进行数据库操作时的事务控制。Spring提供了多种方式来管理事务,使得开发者能够在复杂的业务逻辑中更好地控制数据的持久化过程,确保数据的一致性和...
在Java中,JDBC事务处理主要涉及以下几个关键概念: 1. **Connection对象**:它是与数据库的会话,通过该对象可以开启、提交和回滚事务。在连接池中获取到的Connection通常已经自动开启了事务,但如果没有,可以...
“JDBC事务管理项目”涵盖了如何在Java应用中利用JDBC进行事务控制,包括开启手动事务、提交、回滚以及设置事务隔离级别等。理解并掌握这些知识对于开发健壮的数据库应用至关重要,能够确保数据的完整性和一致性。
Spring JDBC事务管理 Spring框架提供了两种事务管理方式:编程式的事务管理(Programmatic transaction management)和声明式的事务管理(Declarative transaction management)。在本文中,我们将以JDBC事务管理...
这篇12页的PDF文档,"JDBC事务管理及SavePoint示例Java开发Java经验技巧",很可能是详细讲解了这两个主题,并提供了一些实际的编程示例。 首先,让我们来深入理解JDBC事务管理。在Java中,JDBC提供了四种事务隔离...
在描述中提到的博客链接(由于实际链接无法访问,这里无法提供具体细节),可能详细讲述了如何在Spring中配置和使用JDBC事务,包括示例代码和常见问题解决。在实际项目中,理解并正确应用这些事务管理机制对于保证...
Oracle JDBC事务的优化是数据库管理中的重要环节,其目的是提高数据库系统的性能和效率。Oracle数据库作为广泛使用的关系型数据库系统,其性能优化涉及到多个层面,包括共享内存管理、数据库段的优化、数据组织方式...
本篇文章将深入探讨Spring JDBC如何通过注解来实现事务管理。 1. **Spring JDBC简介** Spring JDBC提供了一个JdbcTemplate类,它封装了常见的JDBC操作,如执行SQL查询、更新、调用存储过程等,减少了代码量和出错...
首先,我们需要理解JDBC事务的基本概念。JDBC支持四种事务隔离级别,包括读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ)和串行化(SERIALIZABLE)。每种级别都有不同的...
Spring JDBC提供了多种事务隔离级别,例如ISOLATION_DEFAULT、ISOLATION_READ_UNCOMMITTED、ISOLATION_READ_COMMITTED、ISOLATION_REPEATABLE_READ、ISOLATION_SERIALIZABLE等。 rollbackFor 属性 rollbackFor ...
本篇文章我们将深入探讨Spring JDBC事务控制,这是Spring框架中处理数据持久化的一个关键特性。Spring JDBC提供了对数据库事务的高级封装,使得开发者能够方便、高效地管理事务,而无需过多关注底层实现细节。 首先...
### JDBC专题(六)-JDBC专题-事务的隔离级别 #### 一、事务的基本概念与特性 事务在数据库管理中扮演着极其重要的角色,尤其是在处理关键业务逻辑时,确保数据的一致性和完整性至关重要。根据提供的文件信息,我们...
JDBC事务支持四种隔离级别: 1. **读未提交(READ UNCOMMITTED)**:允许读取未提交的数据,可能导致脏读。 2. **读已提交(READ COMMITTED)**:每次读取的数据都是已经提交的,避免脏读,但可能出现不可重复读。 3...
1. **JDBC事务的基本概念** - **事务**:事务是数据库系统中执行的一系列操作的集合,这些操作要么全部成功,要么全部失败。事务具有四大特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)...
本练习主要涵盖了Spring的三个方面:面向切面编程(AOP)、JDBC(Java Database Connectivity)以及事务管理(TX)。让我们详细探讨这些知识点。 1. **Spring AOP(面向切面编程)** 面向切面编程是Spring框架的一...