我正在使用MVC和三层架构设计Web应用程序。我有三层架构的设计问题

时间:2013-04-07 15:23:52

标签: java design-patterns web-applications

在DAO层中,我正在为每种类型的数据库查询创建方法,如addDevice,deleteDevice,searchDevice,ifAlreadyRegistered .....等,这使得我的DAO层对象非常繁重。

DAO中没有办法在DAO中使用通用插入方法,删除方法,更新方法吗?

1 个答案:

答案 0 :(得分:2)

您是否使用Hibernate之类的ORM与数据库进行交互?如果没有,您可能想尝试ORM。它可以使您更容易使用数据库,因为您使用“本机”编程语言(例如您的Java)而不是SQL来表达逻辑,并且ORM为您计算出SQL。例如,在Hibernate中,对象更新看起来像这样(来自this article):

transaction = session.beginTransaction();
Course course = (Course) session.get(Course.class, courseId);
course.setCourseName(courseName);
transaction.commit();

...而不是原始SQL。如果使用ORM是有意义的(并非所有情况都是如此),它可以使您的代码更清晰,更直接。

粗略地说,ORM 有意义的程序的一个很好的例子就像CRM,你只是推动对象并做简单的报告; ORM可能有意义的程序的一个很好的例子就像分析工具,你将使用大量定制和仔细优化的SQL查询,在这种情况下你可能会花更多的时间工作在ORM周围而不是实际使用它。