Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DAO与hibernate的关系_Java_Hibernate_Dao - Fatal编程技术网

Java DAO与hibernate的关系

Java DAO与hibernate的关系,java,hibernate,dao,Java,Hibernate,Dao,我试图用谷歌搜索答案,但我仍然对他们的关系感到困惑。 我推测Hibernate是一种刀。 我在维基百科上查到了DAO, 但发现那里与冬眠无关。那么这两者之间的关系到底是什么呢?一些例子将是伟大的 不,Hibernate是一种新的方法(另请参见) 是一种独立于技术的设计模式。Java平台上的DAO通常使用以下技术中的一种(通常仅使用一种): 因此,您可以在不使用DAOs的情况下使用Hibernate(尽管这不是一个好主意),并且您当然可以在不使用Hibernate的情况下创建DAO。然而,大约5

我试图用谷歌搜索答案,但我仍然对他们的关系感到困惑。 我推测Hibernate是一种刀。 我在维基百科上查到了DAO,

但发现那里与冬眠无关。那么这两者之间的关系到底是什么呢?一些例子将是伟大的

不,Hibernate是一种新的方法(另请参见)

是一种独立于技术的设计模式。Java平台上的DAO通常使用以下技术中的一种(通常仅使用一种):

因此,您可以在不使用DAOs的情况下使用Hibernate(尽管这不是一个好主意),并且您当然可以在不使用Hibernate的情况下创建DAO。然而,大约50%的Java DAO类是使用普通Hibernate或JPA创建的,其中Hibernate作为JPA提供程序。

不,Hibernate是一个(另请参见)

是一种独立于技术的设计模式。Java平台上的DAO通常使用以下技术中的一种(通常仅使用一种):


因此,您可以在不使用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);
    }
}