Java DAO与hibernate的关系
我试图用谷歌搜索答案,但我仍然对他们的关系感到困惑。 我推测Hibernate是一种刀。 我在维基百科上查到了DAO, 但发现那里与冬眠无关。那么这两者之间的关系到底是什么呢?一些例子将是伟大的 不,Hibernate是一种新的方法(另请参见) 是一种独立于技术的设计模式。Java平台上的DAO通常使用以下技术中的一种(通常仅使用一种): 因此,您可以在不使用DAOs的情况下使用Hibernate(尽管这不是一个好主意),并且您当然可以在不使用Hibernate的情况下创建DAO。然而,大约50%的Java DAO类是使用普通Hibernate或JPA创建的,其中Hibernate作为JPA提供程序。不,Hibernate是一个(另请参见) 是一种独立于技术的设计模式。Java平台上的DAO通常使用以下技术中的一种(通常仅使用一种):Java DAO与hibernate的关系,java,hibernate,dao,Java,Hibernate,Dao,我试图用谷歌搜索答案,但我仍然对他们的关系感到困惑。 我推测Hibernate是一种刀。 我在维基百科上查到了DAO, 但发现那里与冬眠无关。那么这两者之间的关系到底是什么呢?一些例子将是伟大的 不,Hibernate是一种新的方法(另请参见) 是一种独立于技术的设计模式。Java平台上的DAO通常使用以下技术中的一种(通常仅使用一种): 因此,您可以在不使用DAOs的情况下使用Hibernate(尽管这不是一个好主意),并且您当然可以在不使用Hibernate的情况下创建DAO。然而,大约5
因此,您可以在不使用DAOs的情况下使用Hibernate(尽管这不是一个好主意),并且您当然可以在不使用Hibernate的情况下创建DAO。然而,大约50%的Java DAO类是使用普通Hibernate或JPA创建的,Hibernate作为JPA提供者。DAO通常描述应用程序和底层数据库之间的接口。 您可以通过使用对象关系映射器(Hibernate就是这样)来实现此功能
不要认为我可以更好地描述它-抱歉。DAO通常描述应用程序和底层数据库之间的接口。 您可以通过使用对象关系映射器(Hibernate就是这样)来实现此功能
不要认为我可以更好地描述它-对不起。数据访问对象就是这样的:一个用于访问数据的对象。它通常是执行某些业务功能的应用程序的接口层。DAO可以使用hibernate与数据库通信、读取文件、与远程资源通信或其他任何操作。关键是应用程序的上层不知道或不需要关心 Hibernate只是实现DAO的多种方法之一
public interface BusinessOperation {
public String bestVehicle(String show);
}
// Hibernate implementation of DAO
public class HibernateBusinessOperation implements BusinessOperation {
@Override
public String bestVehicle(String show) {
String sql = "FROM show where show_name = :show";
Query query = getSession().createQuery(sql);
query.setString("show", show);
Show queryResult = (Show) query.uniqueResult();
if (queryResult == null)
throw new InvalidShowException(show);
return queryResult->getBestVehicle();
}
}
// Test implementation of DAO
public class TestBusinessOperation implements BusinessOperation {
@Override
public String bestVehicle(String show) {
if ("Knight Rider".equals(show)) {
return "KITT";
}
if ("Airwolf".equals(show)) {
return "Airwolf";
}
throw new InvalidShowException(show);
}
}
数据访问对象就是:用于访问数据的对象。它通常是执行某些业务功能的应用程序的接口层。DAO可以使用hibernate与数据库通信、读取文件、与远程资源通信或其他任何操作。关键是应用程序的上层不知道或不需要关心 Hibernate只是实现DAO的多种方法之一
public interface BusinessOperation {
public String bestVehicle(String show);
}
// Hibernate implementation of DAO
public class HibernateBusinessOperation implements BusinessOperation {
@Override
public String bestVehicle(String show) {
String sql = "FROM show where show_name = :show";
Query query = getSession().createQuery(sql);
query.setString("show", show);
Show queryResult = (Show) query.uniqueResult();
if (queryResult == null)
throw new InvalidShowException(show);
return queryResult->getBestVehicle();
}
}
// Test implementation of DAO
public class TestBusinessOperation implements BusinessOperation {
@Override
public String bestVehicle(String show) {
if ("Knight Rider".equals(show)) {
return "KITT";
}
if ("Airwolf".equals(show)) {
return "Airwolf";
}
throw new InvalidShowException(show);
}
}