一、问题分析 公司目前维护的一个系统,已经有超过8年的历史。现在遇到严重的性能问题,尤其是查询方面。系统简单介绍如下: 1. 架构:客户端(windows程序)+服务端(J2EE,EJB,Web Service)+数据库(oracle); 2. 技术特点: 客户端和服务端通过Web Service进行数据传输; 服务端为传统的EJB; 服务端数据采用自行开发的DataSet进行封装,以XML格式返回给客户端; 无DAO对象与领域对象; 无数据缓存机制; 数据库设计严重违背第三范式。 查询经常要从好几个表取数,而且需要将表数据经过复杂的转换(如行列转换)才能得到目标结果,数据量较大,超过5万行 ...
其实没有用orm之前,如果系统分层比较彻底的话,也同样有这个问题。我们崇尚service层不包含数据访问的东西,包括sql语句等。这些都应该是dao层实现。但是很多查询功能都需要能够多条件任意组合查询。这个时候数dao层应该如何支撑? 我的想法是: 1.做一个比较通用的查询功能,比如设计一个参数类,查询条件通过这个参数类传递到dao层。dao负责解析; 2.就是dao层穷举这些所有可能的组合,分别为每一个组合生成一个接口方法。 看到有人在Hibernate中是使用detachedCretira来实现的。在查询端构造好detachedCretira,然后传递到dao去查询。但是这种方法违背了 ...
wczwcg
搜索本博客
最近加入圈子
存档
最新评论