我有疑虑。需要澄清: 1)我在EmployeeDAOImpl类中实现了getEmployee和addEmployee方法,这两种方法都有Hibernate API的通用代码,如SessionFactory,Session等。如何防止这种情况以避免重复代码?
2)我的Resource类可以直接访问DAO层的数据,然后为什么要去服务层呢?
3)我在某处读到,在MVC架构中,一层应仅从其紧邻的下一层访问数据,例如服务层应仅从DAO层访问数据。这个陈述是真的吗? 有人也可以给我一个合适的链接或材料,提供所有MVC相关术语的清晰概念,如Business对象,Value对象,DTO等因为我经常得到这些疑问。答案 0 :(得分:0)
使用Wrapper类,因此只使用了1个重复的代码行:session = HibernateUtil.getSession(); 或者使用Spring初始化session / entityManager
如果您有单独的DAO层,则可以更轻松地将数据存储切换为任何内容:文件备份,键值数据库或关系数据库;
答案 1 :(得分:0)
1.您可以将重复的代码抽象为名为" BaseDAO"
的bean2.然后UserDAO扩展BaseDAO,例如:
protected abstract BaseDAO<T>{
//get Session
public Integer save(T t) ...
}
public UserDAO extends BaseDAO<User>{
public void saveUser(User u){
save(u);
}
}