先来了解一下什么是事务吧。事务是为了解决数据安全操作提出的,实际上就是控制数据的安全访问。事务其实是一种机制,是对数据库执行的工作单元。无论是在手动方式由用户或者自动的通过某种数据库程序的序列单元。它包含了一组数据库操作指令,这些指令要么全部执行,要么全部不执行。通过事务,可以把逻辑相关的一组操作绑在一起,
以便保持数据的完整性。
还有事务必须服从ISO/IEC所制定的ACID原则。ACID就是原子性,一致性,隔离性,持久性的缩写。
原子性:确保工作单元中的所有操作都成功完成,否则事务被终止的故障点,操作回滚到之前的状态。
一致性:确保数据库正确后成功提交事务更改状态。
隔离:事务操作彼此独立和透明。
持久性:可确保提交的事务的结果或任然存在系统故障的情况下的作用。
实际上一个java语言开发的系统,如果要操作数据库,则是通过jdbc来实现的,所以在jdbc中也有对事务的控制的方法。Jdbc事务有一个局限性,就是不能跨越多个数据库。
Java 事务是用Connection对象控制的,jdbc获得一个connection对象时,默认情况下这个connection对象会自动向数据库提交在它上面发送的sql语句,若想关闭可以通过setAutoCommit方法设置为false即可。
事务控制
COMMIT:保存更改。
ROLLBACK:回滚更改
private Connection con = null;
private PreparedStatement ps = null;
try {
con.setAutoCommit(false); //将自动提交设置为false
ps.executeUpdate("sql修改语句"); //执行修改操作
ps.executeQuery("sql查询语句"); //执行查询操作
con.commit(); //当两个操作成功后手动提交
} catch (Exception e) {
con.rollback(); //一旦其中一个操作出错都将回滚,使两个操作都不成功 e.printStackTrace();
}