0

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

是不是没有办法在DAO里面有通用的insert方法,delete方法,update方法,这样DAO层就不会那么重了?

4

1 回答 1

2

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

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

...而不是原始 SQL。在使用 ORM 有意义的情况下(并非所有情况),它可以使您的代码更简洁明了。

概括地说,ORM确实有意义的程序的一个很好的例子是类似于 CRM,您只是在其中推动对象并做简单的报告;一个 ORM 可能没有意义的程序的一个很好的例子是像一个分析工具,你将使用高度定制和精心优化的 SQL 查询,在这种情况下,你可能会花更多的时间来处理 ORM,而不是实际使用它.

于 2013-04-07T15:29:06.937 回答