一 什么是Java事务
1.1 事务概念
事务,在计算机术语中是指访问并操作数据库中数据项的一个程序执行单元。
1.2 事务特性
原子性:原子性指的是事务是一个不可分割的工作单元,事务中的操作要不全部成功,要不什么都不做。比如同一个SQL语句中,要么全部执行,要么全部执行失败。
一致性:一致性指的是事务必须使数据库从一个状态变换到另一个状态。以转账为例,假设账户A和账户B互相转账,假设转账之前两个用户的钱加起来共1000,那么两个账户无论如何转账,账户A和账户B的钱加起来总额还是1000,这个就是事务的一致性。
隔离性:隔离性是指多个用户同时访问数据库,数据库为每一个用户开启的事务,不能被其他的事务操作干扰。比如两个事务要同时访问一个数据,第一个事务会给数据加一个锁,其他的事务在第一个事务释放锁之前,不能访问此数据。
持久性:持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的。
1.3 Java事务
既然事务的概念从数据库而来,并且事务也是作用于数据库,那什么事Java事务,Java事务和数据库事务有什么联系?
实际上,一个Java应用程序,不可避免的要使用数据库,通常我们将程序的逻辑放到了Java代码中,所以,事务也应该放到Java程序中,因此在Java程序中数据库操作的事务称为Java事务。
二 Java事务类型
Java事务的类型有三种:JDBC事务、JTA(Java T