在DAO层中,我正在为每种类型的数据库查询创建方法,如addDevice,deleteDevice,searchDevice,ifAlreadyRegistered .....等,这使得我的DAO层对象非常繁重。
DAO中没有办法在DAO中使用通用插入方法,删除方法,更新方法吗?
答案 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周围而不是实际使用它。