这个项目以Maven的形式发行,所以你可以以Mave依赖的方式下载这个框架。另外,这些JAR文件也可以从Maven仓库中下载。
1、介绍:
Hibernate Generic DAO框架可以和原始的Hibernate框架一起使用,也可以和Hibernate JPA实现一起使用。当然,理论上,它也可以和其他的JPA实现如OpenJPA或TopLink通过一些额外的配置一起使用。
2、安装:
2.1、通过Maven下载安装:
Hibernate Generic DAO框架可以从Maven中央仓库获取。只需要添加他的依赖到pom.xml中即可。
如果你先使用原始的Hibernate,而不是JPA,你可以在pom.xml中添加如下的依赖:
<dependency>
<groupId>com.googlecode.genericdao</groupId>
<artifactId>dao-hibernate</artifactId>
<version>1.0.0</version>
</dependency>
如果你想使用Hibernate的JPA实现,则添加如下依赖:
<dependency>
<groupId>com.googlecode.genericdao</groupId>
<artifactId>dao</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.googlecode.genericdao</groupId>
<artifactId>search-jpa-hibernate</artifactId>
<version>1.0.0</version>
</dependency>
最新的Maven构建版本:
官方也周期性的发布开发版本,这包括最新的bug修复和改善版本,通过了所有的单元测试,但是还没有准备好发布成为正式版本。这些构建可以从Sonatype Open Source snapshot仓库中获取:
<repository>
<id>sonatype-oss-repo</id>
<name>Sonatype Open Source maven snapshot repo</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</repository>
添加这个仓库到你的pom.xml文件中,然后为该snapshot版本设置Hibernate Generic DAO的版本号(i.e. "1.1.0-SNAPSHOT")。
2.2、不使用Maven下载安装:
如果你现在不在用Maven,你可以从Maven仓库中手动地下载这些JAR文件,该仓库位于:
http://repo1.maven.org/maven2/com/googlecode/genericdao/
这个DAO同时需要search jar文件和dao jar文件。
http://repo1.maven.org/maven2/com/googlecode/genericdao/dao/1.0.0/dao-1.0.0.jar
http://repo1.maven.org/maven2/com/googlecode/genericdao/search/1.0.0/search-1.0.0.jar
如果你正在使用标准的Hibernate而不是JPA,你还需要下载search-hibernate和dao-hibernate JAR文件:
http://repo1.maven.org/maven2/com/googlecode/genericdao/dao-hibernate/1.0.0/dao-hibernate-1.0.0.jar
http://repo1.maven.org/maven2/com/googlecode/genericdao/search-hibernate/1.0.0/search-hibernate-1.0.0.jar
如果你使用了JPA实现的Hibernate,只需要下载search-jpa-hibernate JAR文件即可:
http://repo1.maven.org/maven2/com/googlecode/genericdao/search-jpa-hibernate/1.0.0/search-jpa-hibernate-1.0.0.jar
如果感兴趣,你也可以过去该框架的源代码并添加到你的IDE环境中(XXX-X.X.X-sources.jar):
http://repo1.maven.org/maven2/com/googlecode/genericdao/dao/1.0.0/dao-1.0.0-sources.jar
http://repo1.maven.org/maven2/com/googlecode/genericdao/search/1.0.0/search-1.0.0-sources.jar
http://repo1.maven.org/maven2/com/googlecode/genericdao/dao-hibernate/1.0.0/dao-hibernate-1.0.0-sources.jar
http://repo1.maven.org/maven2/com/googlecode/genericdao/search-hibernate/1.0.0/search-hibernate-1.0.0-sources.jar
http://repo1.maven.org/maven2/com/googlecode/genericdao/search-jpa-hibernate/1.0.0/search-jpa-hibernate-1.0.0-sources.jar
同时,你也需要Hibernate 3.3(或者更老的版本)。这个框架还需要一个依赖:That is Simple Logging Facade for Java (SLF4J)(Hibernate也需要)。
仅仅安装Search而不包括DAOs:
第一种情况(标准的Hibernate),使用如下依赖:
<dependency>
<groupId>com.googlecode.genericdao</groupId>
<artifactId>search-hibernate</artifactId>
<version>1.0.0</version>
</dependency>
第二种情况(Hibernate的JPA实现),使用如下依赖:
<dependency>
<groupId>com.googlecode.genericdao</groupId>
<artifactId>search-jpa-hibernate</artifactId>
<version>1.0.0</version>
</dependency>
如果使用Maven,不需要下载dao…,而只是下载search…即可。
3、配置:
Hibernate Generic DAO library被设置成不需要进行任何设置。它仅仅是POJO对象的集合,你可以决定怎样才能最好的使用。
3.1、Generic DAOs
Generic DAO接口并不可以立刻被使用,除非他们被继承时指定了特定的声明类型。Generic DAO的目的是让他成为特定的实体的DAO。指定使用哪个实体的方法是创建一个GenericDAO的子类并声明具体的实体泛型类型。
3.2、标准的Hibernate:Session和SessionFactory
为了正常工作,每一个DAO和SearchFacade都需要一个Session和SessionFactory。默认的,他们暴露一个public的setSessionFactory()方法,并且使用SessionFactory.getCurrentSession()去获取Session,在你任何需要的时候。在这个配置中,SessionFactory是必须的,并且通常只设置一次,在当对象初始化的使用。
所以,当你需要使用getCurrentSession()方法时,你需要做的只是在使用它们之前,确保每一个DAO都有他自己的SessionFactory集合。如果你需要做特殊的工作,查看UserGuide中的"Details and Tips"里的"Hibernate session strategy"。
如果想要查看一个使用Spring auto-wiring的示例项目,可以在这个SVN中的一个web 项目:/trunk/sample/hibernate-maven-web。
3.3、使用Hibernate实体管理的JPA:
这个配置使用起来比较复杂,因为为了达到使用不同的JPA供应商提供的实现的能力。
每一个DAO需要一个JPASearchProcessor和一个EntityManager。一般来说,一个单个的Search Processor实例在其生命周期中都会关联一个DAO实例。同时,一个新的“当前的” 实体管理器将注入到SearchProcessor中,由于Searchrocessor确保任何实体管理器的使用都关联到同一个持久化单元。
JPASearchProcessor被设计成单例模式。其构造器需要一个MetadataUtil实例。一个JPASe archProcessor只能和关联到了相同的持久化单元的实体处理器一起使用。如果一个应用程序有多个持久化单元,则需要相应的多重Search Processors。
MetadataUtil是允许框架和各种JPA供应商一起工作的抽象层。为了使用特定的JPA供应商,一个MetadataUtil实现必须提供。当前,这个框架只有一个Hibernate的实现。
理论上,不同的MetadataUtil实现需要不同的配置。Hibernate的实现是com.googlecode.genericdao.search.hibernate.HibernateMetadataUtil。每一个持久化单元都需要一个实例。(i.e. EntityManagerFactory)。使用com.googlecode.genericdao.search.jpa.hibernate.HibernateMetadataUtil.getInstanceForEntityManagerFactory(HibernateEntityManagerFactory)来获取实例。
如果想看个使用Spring auto-wiring的实例项目配置,可以在这个SVN中的一个web 项目:可以在这个SVN中的一个web 项目:/tags/1.0.0/sample/jpa-hibernate-maven。
JPASearchFacade的配置基本和DAOs的配置一样。
转自:http://www.itzhai.com/hibernate-generic-dao-introduction-to-installation-and-use.html
分享到:
相关推荐
struts2.3.4+spring3.2.0+hibernate4+hibernate_generic_dao struts hibernate spring最大化使用注释 基于spring的远程调用
由于Generic DAO不能对复杂的HQL或视图,存贮过程进行操作,目前还有待完善,可以不用hibernate-generic-dao - Generic DAO, 用Spring3.2.0和Hibernate4替换,就是一个非常好的Struts2+Spring3+Hibernate4基于...
hibernate-generic-dao 从 code.google.com/p/hibernate-generic-dao 自动导出 由于谷歌代码关闭完成,我在这里导出了 hibernate-generic-dao 项目。 维基没有自动导出,所以我做了一个简单的复制和粘贴,这把格式...
NULL 博文链接:https://newleague.iteye.com/blog/1139861
通过将搜索对象传递给通用DAO和通用DAO的搜索方法,可以使用此功能。 搜索对象提供了灵活的搜索选项: 使用标准运算符(=,!=,>,<,> =,<=,LIKE,IN,IS NULL和IS EMPTY)对属性进行过滤。 使用...
通用道在 JPA/HIbernate/Spring 环境中使用泛型提供 DAO API,因此它可以与此类架构中的任何 Hibernate POJO 一起使用,而无需为每个域类创建专用的数据访问接口。 Maven 依赖项: <dependency> <groupId>org....
Hibernate Spring Generic DAO 很使用的Sampling
目标是展示一个使用 Spring 与 Hibernate 集成的安全 MVC 应用程序,并使用 Generic DAO 框架抽象 DAO 层。 跑前小贴士: 将项目作为现有 Maven 导入(由于父项,您必须两次更新项目) 数据库文件 (DemoDB.rar) ...
java-entitymanager-generic-dao 这是一个使用通用 daos 访问数据的小项目。 在这个实现中,我们使用 Spring Framework ORM EntityManager 使用预配置的数据源来实现基本操作,例如从数据库中插入、更新、删除和检索...
`garry-generic-dao`项目就是这样一个框架,旨在提供一种简化数据访问的方法,通过使用Spring和Hibernate框架,以及MySQL数据库,为开发者提供了一种高效、灵活的通用DAO实现。 首先,Spring框架作为基础,提供了...
这些配置文件和代码会详细阐述如何进行S2SH的整合,以及如何使用注解进行配置,如何处理JSON数据,以及如何设计和实现泛型Dao。通过深入学习和实践这些内容,开发者可以更好地理解和掌握企业级Java Web应用的开发...
在Java编程语言中,"泛型DAO"(Generic DAO)是一种设计模式,它允许开发者创建可重用的数据访问对象(DAOs),以处理多种不同类型的实体对象,而无需为每种对象编写单独的DAO实现。这种方法提高了代码的复用性和可...
这是一个有关如何使用以下技术创建网页的简单示例: NetBeans IDE 8.0.2 GlassFish Server 4.1 Java EE 7 Web JavaServer Faces 2.2Hibernate4.3.1 PostgreSQL 9.4 Primefaces 5.0在此示例中,将展示以下架构: DAO ...
在这个实现中,我们使用通过 AnnotationConfiguration 从 hibernate.cfg.xml 文件创建的 Hibernate ORM Session 来实现基本操作,例如从数据库中插入、更新、删除和检索实体。 这种实现的主要优点是,由于这个 dao ...
泛型DAO(Generic DAO)是DAO模式的一个扩展,它引入了泛型的概念,提高了代码的复用性和类型安全性。本篇文章将深入探讨泛型DAO的实现原理、优势以及如何在实际项目中应用。 首先,我们来理解什么是泛型。泛型是...
** Maven API 文档详解 ** Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。...同时,结合实际项目如 `hibernate-generic-dao` 的使用,可以更好地理解和应用 Maven 在实际开发中的功能。
本文将详细介绍一个基于Struts2、Spring、Hibernate以及Hibernate Generic DAO构建的基础框架。该框架使用全注解的方式进行配置,并且提供了清晰的包结构和文档,便于理解和使用。 #### 技术栈与版本 - **Struts2*...
基于struts2.23 + spring2.5.6 + hibernate3.6.4 + hibernate-generic-dao1.0(除了spring,整合的都是最新的GA包,hibernate-generic-dao是google code项目库中一个开源的basedao)