事务

Java的JDBC事务详解

牧云@^-^@ 提交于 2020-02-03 04:45:51
Java的JDBC事务详解 分类: Hibernate 2010-06-02 10:04 12298人阅读 评论 (9) 收藏 举报 jdbc java 数据库 sql server delete insert 事务的特性: 1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。 2) 一致性(consistency):事务在完成时,必须是所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。 3) 隔离性(isolation):一个事务的执行不能被其他事务所影响。 4) 持久性(durability):一个事务一旦提交,事物的操作便永久性的保存在DB中。即使此时再执行回滚操作也不能撤消所做的更改。 事务(Transaction):是并发控制的单元,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,sql server 能将逻辑相关的一组操作绑定在一起,以便服务器 保持数据的完整性。事务通常是以begin transaction开始,以commit或rollback结束。Commint表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据的更新写回到磁盘上的物理数据库中去,事务正常结束

sql server事务全攻略

风流意气都作罢 提交于 2020-02-03 04:37:06
一 事务的属性 事务具有ACID属性 即 Atomic原子性, Consistent一致性, Isolated隔离性, Durable永久性 原子性 就是事务应作为一个工作单元,事务处理完成,所有的工作要么都在数据库中保存下来,要么完全 回滚,全部不保留 一致性 事务完成或者撤销后,都应该处于一致的状态 隔离性 多个事务同时进行,它们之间应该互不干扰.应该防止一个事务处理其他事务也要修改的数据时, 不合理的存取和不完整的读取数据 永久性 事务提交以后,所做的工作就被永久的保存下来 二 事务并发处理会产生的问题 丢失更新 当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题、 每个事务都不知道其它事务的存在。最后的更新将重写由其它事务所做的更新,这将导致数据丢失。 脏读 当第二个事务选择其它事务正在更新的行时,会发生未确认的相关性问题。 第二个事务正在读取的数据还没有确认并且可能由更新此行的事务所更改。 不可重复读 当第二个事务多次访问同一行而且每次读取不同的数据时,会发生不一致的分析问题。 不一致的分析与未确认的相关性类似,因为其它事务也是正在更改第二个事务正在读取的数据。 然而,在不一致的分析中,第二个事务读取的数据是由已进行了更改的事务提交的。而且,不一致的分析涉及多次(两次或更多)读取同一行,而且每次信息都由其它事务更改;因而该行被非重复读取。

SQLite进阶-18.事务

孤人 提交于 2020-02-03 04:35:24
目录 SQLite事务 事务的属性 事务控制 BEGIN TRANSACTION命令 COMMIT命令 ROLLBACK命令 SQLite事务 事务(Transaction) 是一个对数据库执行工作单元。事务是以逻辑顺序完成的工作单元或序列,可以是由用户手动操作完成,也可以是由某种数据库程序自动完成。 事务是指一个或者多个改变数据库的扩展。例如:如果你正在创建一个记录或者更新一个记录或者从表中删除一个记录,那么你正在该表上执行事务。重要的是要控制事务以确保数据的完整性和处理数据库错误。 实际上,你可以把许多的SQLite查询联合成一组,把所有这些放在一起作为事务的一部分进行执行。 事务的属性 事务(Transaction)具有以下四个标准属性,通常根据首字母缩写为ACID: 原子性(Atomicity) : 确保工作单位内的所有操作都成功完成,否则,事务会在出现故障时终止,之前的操作也会回滚到以前的状态。 一致性(Consistency) : 确保数据库在成功提交的事务上正确的改变状态。 隔离性(Isolation) : 使事务操作相互独立和透明。 持久性(Durability) : 确保已提交事务的结果或效果在系统发生故障的情况下仍然存在。 事务控制 使用下面的命令来控制事务: BEGIN TRANSACTION: 开始事务处理。 COMMIT: 保持更改,或者可以使用END

mysql innodb引擎的事务

痴心易碎 提交于 2020-02-02 23:52:54
数据库事务是数据库执行过程中的一个逻辑单位,一个事务通常包含了对数据库的读/写操作。它的存在包含有以下两个目的:1.为数据库操作序列提供了一个回滚的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。2.当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。(就是提供了事务隔离级别设置来处理并发问题) 一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。** 2、一致性(Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却没收到。 ** 3、隔离性(Isolation):同一时间,只允许一个事务请求同一数据,不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱,在A取钱的过程结束前,B不能向这张卡转账。** 4、持久性(Durability):事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。** 二、事务并发问题名词解释 1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据 2

20200202 ActiveMQ 4. JMS规范和落地产品

孤者浪人 提交于 2020-02-02 09:53:40
ActiveMQ 4. JMS规范和落地产品 4.1. JMS是什么 4.1.1. JavaEE JavaEE是一套使用Java进行企业级应用开发的大家一致遵循的13个核心规范工业标准。JavaEE平台提供了一个基于组件的方法来加快设计、开发、装配及部署企业应用程序。 JDBC(Java Database)数据库连接 JNDI(Java Naming and Directory Interfaces)Java的命名和目录接口 EJB(Enterprise JavaBean) RMI(Remote Method Invoke)远程方法调用 Java IDL(Interface Description Language)/ CORBA(Common Object Broker Architecture)接口定义语言/公用对象请求代理程序体系结构 JSP(Java Server Pages) Servlet XML(Extensible Markup Language)可扩展标记语言 JMS(Java Message Service)Java消息服务 JTA(Java Transaction API)Java事务API JTS(Java Transaction Service)Java事务服务 JavaMail JAF(JavaBean Activation Framework) 4.1

spring @Transactional注解参数详解(13)

非 Y 不嫁゛ 提交于 2020-02-02 04:31:57
事物注解方式: @Transactional 当标于类前时, 标示类中所有方法都进行事物处理 , 例子: 1 @Transactional public class TestServiceBean implements TestService {} 当类中某些方法不需要事物时: 1 @Transactional 2 public class TestServiceBean implements TestService { 3 private TestDao dao; 4 public void setDao(TestDao dao) { 5 this.dao = dao; 6 } 7 @Transactional(propagation =Propagation.NOT_SUPPORTED) 8 public List getAll() { 9 return null; 10 } 11 } 事物传播行为介绍:   @Transactional(propagation=Propagation.REQUIRED) :如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)   @Transactional(propagation=Propagation.NOT_SUPPORTED) :容器不为这个方法开启事务   @Transactional(propagation

python操作mysql

百般思念 提交于 2020-02-02 04:23:18
数据库的事务机制: 事务机制可以确保数据一致性。 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。 持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。 对于支持事务的数据库, 在Python数据库编程中,当游标建立之时,就自动开始了一个隐形的数据库事务。 conn.commit()方法游标的所有更新操作,conn.rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新的事务。 python连接mysql需要用到MySQLdb这个模块,MySQLdb的常用方法有: cur.fetchone() # 该方法获取下一个查询结果集。结果集是一个对象 cur.fetchall() # 接收全部的返回结果行 例1: 1 # -*-

Spring事务管理

﹥>﹥吖頭↗ 提交于 2020-02-01 09:28:40
Spring是SSH中的管理员,负责管理其它框架,协调各个部分的工作。今天一起学习一下Spring的事务管理。Spring的事务管理分为声明式跟编程式。声明式就是在Spring的配置文件中进行相关配置;编程式就是用注解的方式写到代码里。下面先说声明式: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、 TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为 SessionFactory,TransactionManager的实现为HibernateTransactionManager。 下面一起看看三种声明式事务的具体配置: 声明式事务 公共配置 <!-- 配置sessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="configLocation"> <value>classpath:config

Mysql事务的隔离级别

只愿长相守 提交于 2020-02-01 09:17:43
注:转 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。 Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。 Read Committed(读取提交内容) 这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一个事务只能看见已经提交事务所做的改变。这种隔离级别 也支持所谓的不可重复读(Nonrepeatable Read),因为同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。 Repeatable Read(可重读) 这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。不过理论上,这会导致另一个棘手的问题:幻读 (Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。InnoDB和Falcon存储引擎通过多版本并发控制(MVCC,Multiversion

spring-jdbc-aop事务

 ̄綄美尐妖づ 提交于 2020-02-01 08:32:27
1 spring整合JDBC 1.1 概述 spring提供了很多模板整合Dao技术 spring中提供了一个可以操作数据库的对象.对象封装了jdbc技术. JDBCTemplate => JDBC模板对象 与DBUtils中的QueryRunner非常相似. 1.2 步骤 导包 4+2 spring-test spring-aop junit4类库 c3p0连接池 JDBC驱动 spring-jdbc spring-tx事务 准备数据库 书写Dao 增删改 查询单个对象 查询值类型 查询list集合类型 spring配置 依赖关系 测试 1.3 JDBCDaoSupport 和读文件 JDBCDaoSupport 读取外部的Properties配置 2 spring中aop事务 2.1 事务 事务特性 :acid 事务并发问题 :脏读 不可重复读 幻读 事务的隔离级别 1 读未提交 2 读已提交 4 可重复读 8 串行化 2.2 spring封装了事务管理代码 事务操作 打开事务 提交事务 回滚事务 事务操作对象 因为在不同平台,操作事务的代码各不相同.spring提供了一个接口 PlatformTransactionManager 接口★★ DataSourceTransactionManager HibernateTransitionmanager 注意