随笔-14  评论-142  文章-0  trackbacks-0
  2009年4月13日

1, 脏读

一个事务读到另一个事务,尚未提交的修改,就是脏读。这里所谓的修改,除了Update操作,不要忘了,还包括
Insert和Delete操作。

脏读的后果:如果后一个事务回滚,那么它所做的修改,统统都会被撤销。前一个事务读到的数据,就是垃圾数据。


举个例子:预订房间。
有一张Reservation表,往表中插入一条记录,来订购一个房间。

 事务1:在Reservation表中插入一条记录,用于预订99号房间。

 事务2:查询,尚未预定的房间列表,因为99号房间,已经被事务1预订。所以不在列表中。

 事务1:信用卡付款。由于付款失败,导致整个事务回滚。
        所以插入到Reservation 表中的记录并不置为持久(即它将被删除)。

现在99号房间则为可用。
所以,事务2所用的是一个无效的房间列表,因为99号房间,已经可用。如果它是最后一个没有被预定的房间,那么这将是一个严重的失误。

注:脏读的后果很严重。

 

2,不可重复读。

在同一个事务中,再次读取数据时【就是你的select操作】,所读取的数据,和第1次读取的数据,不一样了。就是不可重复读。

举个例子:
 事务1:查询有双人床房间。99号房间,有双人床。

 事务2:将99号房间,改成单人床房间。

 事务1:再次执行查询,请求所有双人床房间列表,99号房间不再列表中了。也就是说,
               事务1,可以看到其他事务所做的修改。


在不可重复读,里面,可以看到其他事务所做的修改,而导致2次的查询结果不再一样了。
这里的修改,是提交过的。也可以是没有提交的,这种情况同时也是脏读。

如果,数据库系统的隔离级别。允许,不可重复读。那么你启动一个事务,并做一个select查询操作。
查询到的数据,就有可能,和你第2次,3次...n次,查询到的数据不一样。一般情况下,你只会做一次,select
查询,并以这一次的查询数据,作为后续计算的基础。因为允许出现,不可重复读。那么任何
时候,查询到的数据,都有可能被其他事务更新,查询的结果将是不确定的。


注:如果允许,不可重复读,你的查询结果,将是不确定的。一个不确定的结果,你能容忍吗?


3,幻读

 

事务1读取指定的where子句所返回的一些行。然后,事务2插入一个新行,这个新行也满足事务1使用的查询
where子句。然后事务1再次使用相同的查询读取行,但是现在它看到了事务2刚插入的行。这个行被称为幻象,
因为对事务1来说,这一行的出现是不可思议的。

举个例子:
事务1:请求没有预定的,双人床房间列表。
事务2:向Reservation表中插入一个新纪录,以预订99号房间,并提交。
事务1:再次请求有双人床的未预定的房间列表,99号房间,不再位于列表中。


注:幻读,针对的是,Insert操作。如果事务2,插入的记录,没有提交。那么同时也是脏读。

 

 

 

 

 

 


 

posted @ 2009-04-13 12:37 liulang 阅读(7293) | 评论 (0)编辑 收藏
  2009年4月8日

 clob = rs.getClob(fieldName);

 String  rtn=clob.getSubString((long)1,(int)clob.length());

posted @ 2009-04-08 12:17 liulang 阅读(3153) | 评论 (3)编辑 收藏
  2009年4月7日
在resin3.0中,deploy是默认的发布目录,在MyEclipse中直接发布到resin的deploy目录中,起动服务器就会运行发布的项目,而在resin-3.1.1中发布到deploy目录下的项目不回运行,需要修改conf目录下的resin.conf文件,用editplus等文本编辑器打开,大概在229行左右,有一行 <web-app-deploy path="webapps"/>是建产发布目录路径的,我们在后边加上一行 <web-app-deploy path="deploy"/>,这样在deploy目录下的项目就能正常运行了。
posted @ 2009-04-07 10:22 liulang 阅读(681) | 评论 (0)编辑 收藏
  2007年9月6日
     摘要: java折半查找算法  阅读全文
posted @ 2007-09-06 18:02 liulang 阅读(5202) | 评论 (4)编辑 收藏
  2007年9月5日
     摘要: 这是面试的时候,最后一道算法题, 可能不习惯手写代码, 做错了,太没面子了...
回来一上机就写出来了!
  阅读全文
posted @ 2007-09-05 17:04 liulang 阅读(6474) | 评论 (5)编辑 收藏
     摘要: 面试老考这个,都背熟了
  阅读全文
posted @ 2007-09-05 16:58 liulang 阅读(94782) | 评论 (32)编辑 收藏
  2006年10月4日
     摘要:   阅读全文
posted @ 2006-10-04 06:47 liulang 阅读(576) | 评论 (0)编辑 收藏
  2006年6月9日
     摘要: java集合类总结  阅读全文
posted @ 2006-06-09 00:16 liulang 阅读(20982) | 评论 (2)编辑 收藏
  2006年6月8日
     摘要:   阅读全文
posted @ 2006-06-08 22:23 liulang 阅读(3510) | 评论 (5)编辑 收藏
  2006年5月27日
     摘要: 关联关系  阅读全文
posted @ 2006-05-27 11:43 liulang 阅读(2921) | 评论 (3)编辑 收藏
仅列出标题