简介
什么是事务?
事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction、end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。
为什么要事务?
事务是为解决数据安全操作提出的,事务控制实际上就是控制数据的安全访问。ACID原则:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、 持久性(durability。(保证数据的安全)
更详细介绍访问这篇博客。
Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务。
JDBC事务,我们可以将多个SQL语句放到同一个事务中,保证其ACID特性。缺点:一个 JDBC 事务不能跨越多个数据库!
JTA事务,JTA(Java Transaction API)提供了跨数据库连接(或其他JTA资源)的事务管理能力。缺点:实现复杂。
容器事务,Spring容器。案例见这里:传送门
案例-JDBC事务
1 |
要么都成功,要么都失败。 |
setAutoCommit(boolean):设置是否为自动提交事务,如果true(默认值为true)表示自动提交,也就是每条执行的SQL语句都是一个单独的事务,如果设置为false,需要手动提交事务,可以将多个SQL语句放到同一个事务中。
1 |
//connection为Connection对象。 |
完整代码:
1 |
package com.qsdbl.jspdemo; |
数据库操作案例(JDBC)笔记见:传送门。