基础-事务

事务是什么,它的作用?

  事务,一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中的各种数据项的一个程序执行单元。这些单元要么全部成功,要么全都不成功。

通过事务,可以保证我们的一件事情的所有单元片段都成功或都不成功。

可以保证我们的数据完整性。

Mysql中默认是一条sql一个事务。

Mysql中手动事务处理

start transaction 开启事务

commit; 提交事务

rollback; 事务回滚

回滚点:

得到回滚点

Connection.setSavePoint();

指定回滚

Connection.rollback(Savepoint);

事务特性(ACID)

原子性: 不可以在分割,是一个整体

一致性: 它说的是数据在前后要一致。

隔离性: 多个事务在操作时,不能相互影响

持久性: 数据一旦提交,就持久化到数据库中了。

如果不考虑事务的隔离性,会出现什么问题?

脏读  一个事务读取到了另一个事务未提交的数据。

不可重复读 它说的是事务在读取数据时多次读取到的不一致。(update)

虚读(幻读) 它说的是事务在读取数据时多次读取到的不一致(insert)

介绍四种隔离级别

Read uncommitted 这种级别什么问题也解决不了

Read committed  它可以解决脏读

Repeatable read  它可以解决脏读及不可重复读

Serializable    它可以解决所有问题,它叫串行化.

mysql数据库默认的事务隔离级别-----repeatable read级别.

oracle数据默认的事务隔离级别 ----read committed

对于隔离级别四种

安全性  Serializable》Repeatable read》read committed 》read uncommitted;

性能  Serializable《Repeatable read《read committed 《read uncommitted;

在开发中,一般使用  read committed  repeatable read两种。

ThreadLocal

它的底层是使用了一个Map集合

Map<Thread,Object>

它的key就是当前的线程对象.

set(Object obj) 它就相当于  map.put(Thread.currentThread(),obj);

get()它就相当于 map.get(Thread.currentThread()));

连接池(DataSource) 数据源

在jdbc中关于数据库的操作涉及到两个包  java.sql  javax.sql

javax.sql包下有一个 DataSource

所有的支持java的连接池都应该实现javax.sql.DataSource接口,在这个接口中提供了一个方法  getConnection()它就是获取一个连接对象的。

如果连接对象Connection是通过连接池获取的,当通过Connection对象调用close()方法时,不再是销毁连接对象,而是将连接对象放回到连接池。

dbcp连接池   c3p0连接池

时间: 2024-10-09 01:10:14

基础-事务的相关文章

Java基础 —— 事务

一.事务 简单点说,事务就是一件事情.所有与事务相关的内容都是围绕这一件事情展开的. 二.事务的特性:ACID A:Atomicity(原子性),事务必须是一个不可分割的整体. C:Consistency(一致性),执行完数据库操作后,数据不会被破坏.如:从 A 账户转账到 B,要保证 A 账户扣钱后,B 账户能增加对应的钱数. I:Isolation(隔离性),多个人对同一条数据同时进行操作时,若不加以控制,会产生非常大的麻烦.而这个控制就是指隔离性. D:Durability(持久性),若执

数据库基础——事务

事务处理技术主要包括数据库恢复技术和并发控制技术. 事务 定义:用户定义的一个数据库操作集合.事务是数据恢复和并发控制的基本单位. 特性:ACID.原子性(Atomicity),一致性(Consistency),隔离性(Isolation),持续性(Durability) 1.原子性.这些操作要么全都执行,要么全不执行. 2. 一致性.事务的执行结果是从一个一致性状态变道另一个一致性状态. 3.隔离性.一个事务的执行不能被其他事务干扰. 4.持续性,也称永久性.一个事务提交,对数据库中数据的改变

mysql基础 事务的认识和使用

事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务是恢复和并发控制的基本单位. 在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序. 事务应该具有4个属性:原子性.一致性.隔离性.持久性.这四个属性通常称为ACID特性: 原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做. 一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态.一致性与原子

MySQL基础——事务隔离级别

事务是DBMS得执行单位.它由有限得数据库操作序列组成得.但不是任意得数据库操作序列都能成为事务.一般来说,事务是必须满足4个条件(ACID) ①:原子性(Autmic):事务在执行性,要做到"要么不做,要么全做!",就是说不允许事务部分得执行.即使因为故障而使事务不能完成,在rollback时也要消除对数据库得影响! ②:一致性(Consistency):事务操作之后,数据库所处的状态和业务规则是一致的;比如a,b账户相互转账之后,总金额不变! ③:隔离性(Isolation):如果

【持久层】数据库事务基础——事务的隔离级别

内容导读: 前三节数据库事务.并发带来的风险以及数据库锁都是为了铺垫事务的隔离性. 事务的隔离性不是无缘无故就存在的,他的存在是为了解决某一类问题,带来某一些操作的便捷:解决的问题是指数据库并发操作中数据一致性保证,带来的便捷是指定义好隔离级别之后,数据库会为操作自动加锁(不同的隔离级别拥有不同的自动锁粒度),而不用每次操作都手动的加锁. 写着写着觉得没什么可写的,本文已沦为简单的笔记···· 一.数据库事务 将一组数据库操作看作一个具备特殊数据库语义的执行单元,该执行单元具备ACID的事务属性

Oracle基础 事务

一.事务 事务就是业务上的一个逻辑单元,它能够保证其中对数据所有的操作,要么全部成功,要么全部失败. 二.事务的特性: 1.原子性:事务是SQL中的最小执行单位,不能再进行分割. 2.一致性:SQL语句要么全部执行,要么全部不执行. 3.隔离性:事务之间是相互隔离的,多个事务不会相互影响. 4.持久性:当事务提交后,数据则永久有效. 三.事务控制语句: 1.COMMIT:提交事务,对数据库的修改进行保存. 2.ROLLBACK:回滚事务,取消对数据库所做的修改. 3.SAVEPOINT:在事务中

MongoDB基础知识(一)

互联网行业的发展非常的迅速,数据存储以及架构优化方面也有很多不同的解决方案,例如关系型数据库.非关系型数据库.数据仓库技术等.更多数据库类产品的出现,为我们很好的解决了数据存储的问题,例如Redis缓存,MySQL关系型数据库,MongoDB文档型数据库,Hbase数据仓库等. 随着业务的发展,在对架构优化时,选取了MongoDB存储一部分数据,作为一个运维人员只能迎头赶上,去学习操作和维护相关知识.下面的文档就是自己学习MongoDB数据库的学习笔记,主要有以下特点: 1.理论较少,主要是实际

已禁用对分布式事务管理器(MSDTC)的网络访问。请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问。

已禁用对分布式事务管理器(MSDTC)的网络访问.请使用组件服务管理工具启用 DTC 以便在 MSDTC 安全配置中进行网络访问. 此错误好像只有sql server2005才有,2008数据库以后版本就没有此错误了. 与基础事务管理器的通信失败. .net 代码里 写事务代码 如: using System.Transactions; using (TransactionScope ts = new TransactionScope()) { } ts.Complete(); DTC登陆账户为

什么是NoSQL

转载自http://www.codingkit.com/mongodb/nosql.html NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL". 在现代的计算系统上每天网络上都会产生庞大的数据量. 这 些数据有很大一部分是由关系数据库管理系统(RDMBSs)来处理. 1970年 E.F.Codd's提出的关系模型的论文 "A relational model of data for large shared data banks",这