有关数据传输对象大小的问题

04-04-18 chinahero
把表映射成对象,有些时候造成冗余数据的传输,降低了系统性能,特别是在表字段比较多的情况下:比如一个用户表有30个字段,包括地址,描述等 ,但我有一个方法只要用户名列表,用o/r mapping后,一般都是用select * from mytable,造成很多数据根本不要传输的进入了传输,是不是我不应该用select * from mytable,而应该用select field,field2....这样的语句呢?

wwlhp@jdon
2004-04-19 11:37
应该使用定制的DTO。这种方法在《EJB设计模式》P43中有详细介绍,机械工业出版社。

banq
2004-04-19 11:53
是的,说白了,就是使用JDBC直接获得。

chinahero
2004-04-20 19:55
有些模块要表的前面字段,有些呢是要后面的字段,有些是表的字段全要

定制的dto是不是把一张表根据需求分成不同属性的dto

wwlhp@jdon.com
2004-04-20 20:17
比如一个Car类,有30个属性。有些页面只需要品牌和制造厂家,你就可以造一个CarNameAndProducerDTO, 而有些页面只关注汽车的引擎,你就需要一个CarEngineDTO.

还有,你还需要一个CarDTOFactory,就是跟汽车有关的DTO的工厂。有如下的方法:

CarNameAndProducerDTO getNameAndProducerDTO(carPK);

CarEngineDTO getCarEngineDTO (carPK);

猜你喜欢
2Go 1 2 下一页