我的导师告诉我DAO和hibernate之间有区别...我从昨天开始一直在寻找答案,但找不到它。任何人都可以清楚地解释清楚。
提前致谢
答案 0 :(得分:5)
DAO(数据访问对象)是一种设计模式,它定义了一种隐藏应用程序持久层的方法。使用其接口的类将不会意识到持久性操作,并且与数据库或您使用的任何其他持久性机制脱钩。
Hibernate是一个ORM(对象 - 关系映射)库,它使您能够将Java类映射到关系表。使用Hibernate,您可以保存和查询表中的数据,而无需手动编写SQL查询。
因此,即使您使用Hibernate,您仍然可能希望实现DAO模式以将持久层与应用程序分离。
答案 1 :(得分:2)
它就像运输概念和柴油发动机之间的区别
DAO是一种模式,您可以将持久性相关操作与应用程序的其余部分隔离开来。它是一种设计数据处理组件的方法
Hibernate是ORM框架的特定实现。它是一个用于使DAO实现更简单的工具(大多数时候:P)
答案 2 :(得分:2)
他们是不同的东西。所以你无法比较。
DAO(数据访问对象)是一种设计模式,可帮助您集中和解耦数据访问层。
public abstract MyBaseDAO{
//Connection settings, common behavior.
}
public interface CustomerPersistence{
//Defines the API
Customer saveCustomer(Customer customer);
}
public class CustomerPersistenceImpl extends MyBaseDAO implements CustomerPersistence{
//Implements the API
public Customer saveCustomer(Customer customer){
//Use some methods from MyBaseDao
this.saveObject(customer)
}
}
这只是一个小例子。主要的想法是您的企业登录应该只使用CustomerPersistence(这仍然是时间) MyBaseDAO和CustomerPersistenceImpl可能会发生变化,但与您的业务脱钩。
关于Hibernate,您可以使用CustomerPersistenceHibernateImpl来实现您的DAO或其他ORM框架而无需进一步更改。
希望它有所帮助!