日期:2014-05-16  浏览次数:20627 次

oracle学习笔记7--事务
1、 什么是事务
事务是用于保证数据的一致性,它由一组相关的DML语句组成,该组的DML语句要么全部成功,要么全部失败。如:网上转账……
2、 事务和锁
当执行事务操作(dml语句)时,oracle会在被作用的表上加锁,防止其他用户改变表的结构,这点对我们用户来讲是很重要的。
3、 保存点和回退事务
保存点是事务中的一点,用于取消部分事务,当结束事务时,会自动的删除该事务定义的所有保存点,当执行rollback时,通过指定保存点可以回退到指定的点。
4、 提交事务
使用commit语句可以提交事务,当执行了commit语句后,会确认事务的变化、结束事务、删除保存点、释放锁、当使用commit语句结束事务后,其它会话将可以查看到事务变化后的新数据。
5、 如何在Java中操作事务呢
其实很简单,oracle是默认自动提交事务的,那么我们只要在执行事务语句之前取消自动提交,执行事务的语句过后再手动提交就可以了
假设我这有一个Connection对象的实例conn,调用这个函数:
conn.setAutoCommit(false);就可以取消自动提交了,然后我们执行一系列的中间不能打断的DML语句,完了再在最后加上这么一句:conn.commit();就可以了,如果一旦发生异常,在catch语句块中加上conn.rollback();就OK了。
6、 只读事务
只读事务是指只允许执行查询的操作,而不允许执行任何其它DML操作的事务,使用只读事务可以确保用户只能取得某时间点的数据。假定机票代售点每天18点统计今天的销售情况,这时可以使用只读事务,在设置了只读事务后,尽管其它会话可能会提交新的事务,但是只读事务将不会取得最新数据的变化,从而可以保证取得特定时间点的数据信息。
7、 设置只读事务
Set transaction read only