假设有Tomcat 7,MySql 5.5和JSP,以及手动编码的DAO ......
从“生产”应用程序的perspactive,以下查询体系结构之间是否存在重大偏好?
在任何一种情况下,servlet都会调用DAO来获取项目,然后将它们传递给JSP,以便在属性中显示。
1)DAO使用以下命令返回JSTL结果:result = ResultSupport.toResult(rs);
2)DAO返回一个包含完整数据对象的List。
对我而言,如果您要对它们进行实质性操作,对象似乎更好。即更新它们。但是对象列表对于仅显示数据表来说太多了。对于频繁使用的应用程序,似乎列表将消耗大量服务器资源而几乎没有实际好处。此外,似乎连接表以满足不同的显示要求需要大量的编码工作和维护。
似乎让DAO返回JSTL结果用于轻量级显示目的在服务器上会更容易,而且编码维护也更容易。
我知道在生产环境中使用JSP中的JSTL SQL标记是不受欢迎的 - 尽管我从未真正理解为什么......在Java servlet中使用JSTL结果会产生同样的负面看法吗?
我无法找到解释这两种方法之间首选架构的权威指南。鉴于JSTL结果的便利性,我很惊讶它很少提到?
有什么想法吗?
由于
答案 0 :(得分:0)
DAO
的主要思想是封装数据访问逻辑并将其与业务逻辑隔离开来。 Option 2
就是这么做的。
Option 1
使业务逻辑与数据模型紧密耦合,因为它需要知道记录集的确切结构。如果您决定重构数据库实现,则必须重新编写业务逻辑层的一部分。