petstore小节之二
偶然看见这个帖子,不得不说一下了。
http://www.jdon.com/jive/thread.jsp?forum=16&thread=3843&message=397901&redirect=true&hilite=true&q=transaction
在petstore中只在一个地方使用了DAO模式,重要的是,这个模式不同于我们平常使用的DAO,这个DAO是只读的(只由get方法组成)。
在components目录下的catalog包中,sun唯一使用了DAO模式来弥补cmp在查询方面上的缺陷。目的:一,加快速度,提高性能;二,减少cmp在内存中的存储;三,可读性提高了。这三个方面也是cmp的缺点。
因此,在面对大量查询操作的时候,尤其是要组合sql语句的时候,推荐使用dao的只读模式。并且,这种操作对事务的要求很少。
dao普通模式(就是有insert/update等方法的模式)应该尽量被ejb的cmp替代。减少代码工作量,cmp的建立是非常简单的,尤其是数据库操作等方面,其将大量操作交给容器来做。
在dao只读的上层,是无状态sessionfacade。facade层次用来控制事务处理,逻辑等操作。catalog.ejb的包中的CatalogEJB类,就使用了这一层关系。
我一直找不到petstore中自己处理事务的好方法,不知道谁有好建议?
我的mail:chenchen@foundercy.com