`
lxiaodao
  • 浏览: 121290 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

基于hibernate的通用、”万能“Dao的设计(三)之通用GenericDao

阅读更多
通用泛型Dao
/**
 * 封装通用的DAO(Data Access Object)类,处理常用的CRUD操作。 
 * 对于简单操作,建议扩展此类使用,如:UserDao extends GenericDao<User, Long>
 * <br/>
 * 
 * @param <T>
 *            域对象类型
 * @param <PK>
 *            主键类型
 * 
 * @author lxiaodao 不再继承 HibernateDaoSupport,自动注入sessionfacroty。
 *         2009-06-05移除操作多个对象的方法,提供直接new的能力。但是建议不要自己new。
 * 
 * 
 */
@SuppressWarnings("unchecked")
public class GenericDao<T, PK extends Serializable> extends BaseDao {

	/**
	 * 用于扩展的DAO子类使用的构造函数.
	 * 
	 * 通过子类的泛型定义取得对象类型Class. eg. public class UserDao extends GenericDao<User,
	 * Long>
	 * 
	 */
	public GenericDao() {
		this.entityClass = ReflectionUtils.getSuperClassGenricType(getClass());	
	}

	/**
	 * 用于Service层直接使用GenericDao的构造函数. 不再提倡在service注入sessionFactory,再注入给dao接口。
	 * eg. GenericDao<User, Long> userDao = new GenericDao<User,
	 * Long>(User.class);
	 * 
	 */
	public GenericDao(SessionFactory sessionFactory, Class<T> entityClass) {
		super(sessionFactory);
		this.entityClass = entityClass;
	}

	// -------------------------------------------------------------------
	// 简单操作数据库方法
	// --------------------------------------------------------------------

	/**
	 * 查询所有对象实体数据
	 */
	public List<T> getAll() {
		return getBaseCriteria().list();
	}

	/**
	 * 根据主键查询实体
	 * 
	 * @param id
	 * @return
	 */
	public T get(final Serializable id) {
		return (T) this.getSession().get(entityClass, id);
	}

	public T load(final Serializable id) {
		return (T) this.getSession().load(entityClass, id);
	}

}
分享到:
评论

相关推荐

    基于hibernate的泛型Dao框架

    标题中的“基于Hibernate的泛型Dao框架”是指在Java开发中使用Hibernate ORM工具,并结合泛型设计模式构建的数据库访问对象(DAO)框架。这样的框架旨在提高代码复用性,减少重复工作,使得数据访问层的实现更加简洁...

    基于泛型的通用Dao接口和hibernate的实现

    基于泛型的通用Dao接口和Hibernate的实现 基于泛型的通用Dao接口是指使用泛型来实现数据访问对象(DAO)的接口,主要是在使用 Hibernate 或 JPA 时使用。泛型可以使得DAO接口更灵活、更通用。 泛型Dao接口的优点:...

    hibernate 通用接口架构

    "hibernate 通用接口架构"是指利用Hibernate框架,通过设计DAO(Data Access Object)层的接口来实现业务逻辑与数据访问的解耦,从而提高代码的可复用性和可维护性。 首先,我们来理解DAO层的作用。DAO层作为业务...

    hibernate不是泛型的通用DAo1

    然而,为了提高代码的复用性和可维护性,通常会设计一个通用DAO(Data Access Object)层来处理基本的数据操作。"hibernate不是泛型的通用DAo1"这个标题暗示了我们讨论的是一种非泛型化的DAO实现,可能是因为开发者...

    Struts2 Spring3 Hibernate 注解功能 DAO 泛型 通用分页

    总的来说,"SSHWithAnnotationDemo"项目展示了如何利用现代Java技术栈的高级特性,包括Struts2、Spring3和Hibernate的注解功能,DAO层的泛型设计以及通用的分页实现,来构建一个高效、可维护的Web应用。这样的实践...

    泛型通用DAO,可以很简化DAO层的代码

    在Java编程领域,DAO(Data Access Object)模式是一种常见的设计模式,用于封装对数据库的操作,以解耦业务逻辑层和数据存储层。泛型通用DAO是这种模式的一种优化,它利用了Java 5.0引入的泛型和反射机制,大大简化...

    再发一个基于Hibernate+Spring 泛型GenericDao 的工程源码.

    标题中的“基于Hibernate+Spring 泛型GenericDao”的工程源码指的是一个整合了Spring框架和Hibernate ORM技术的项目,其中使用了泛型设计模式来实现数据访问对象(DAO)。这个项目可能旨在提供一种通用、可复用且...

    ssh通用基于泛型的dao

    标题“ssh通用基于泛型的dao”指的是使用SSH(Spring、Struts2、Hibernate)框架开发的一个通用的、基于泛型的DAO实现,它旨在提高开发效率,减少重复工作。 SSH框架是Java企业级应用开发的常用组合,Spring提供了...

    Hibernate泛型DAO(结合spring模板支持)

    泛型DAO是一种设计模式,它通过定义一个通用的DAO接口或抽象类,可以适用于不同的实体类,减少了重复的代码。这种模式的核心在于利用Java的泛型特性,使得DAO方法可以处理任何类型的实体对象,而无需为每个实体类...

    Struts2+hibernate+spring整合泛型DAO

    总结来说,"Struts2+hibernate+spring整合泛型DAO"是一种常见的Java Web开发模式,它利用三大框架的优势,结合泛型设计,提高了代码复用,降低了维护成本,使得开发者能更专注于业务逻辑,而不是基础架构。

    一个很好的通用泛型dao(含源码)

    为什么我们要使用通用DAO接口呢,因为我们的数据库操作无非是增删改查,CRUD操作,我们不需要为每个实体去编写一个dao接口,对于相似的实体操作可以只编写一个通用接口,然后采用不同的实现! DAO已经成为持久层...

    GenericDAO

    在传统的DAO实现中,每个实体类都需要对应一个DAO接口和其实现类,而GenericDAO通过泛型技术,可以实现一个通用的DAO模板,减少重复代码,提高开发效率。 在Java中,DAO(Data Access Object)模式是用来封装对...

    spring hibernate 泛型DAO

    本文将深入探讨“Spring Hibernate 泛型DAO”这一主题,以及如何通过泛型DAO实现更加高效、可复用的代码。 首先,让我们理解什么是DAO(Data Access Object)模式。DAO是一种设计模式,它的主要作用是隔离业务逻辑...

    通用DAO

    在IT行业中,数据库操作是开发工作中的重要环节,而DAO(Data Access Object)模式则是用于封装数据访问逻辑的一种设计模式。通用DAO的概念旨在减少数据库操作的重复性工作,提高代码的可复用性和可维护性。本文将...

    大家看看我设计的泛型DAO(使用Spring的Anotation和Hibernate)

    本篇文章将深入探讨一个使用Spring注解和Hibernate实现的泛型DAO设计,以提高代码的复用性和可维护性。 首先,`HibernateBaseDao.java`是基础的Hibernate DAO类,它提供了对Hibernate操作的基本封装。这个类通常会...

    Hibernate泛型DAO及使用方法

    而`Hibernate泛型DAO`则是为了减少代码重复性,提高代码复用性和可维护性的一种设计模式。本文将深入探讨`Hibernate泛型DAO`的实现及其使用方法。 首先,DAO(Data Access Object)模式是一种设计模式,它的主要...

    DAO模式设计

    DAO(Data Access Object)模式是软件开发中常用的设计模式,主要目的是为了将数据访问层与业务逻辑层解耦,提供一个抽象层来处理数据库操作。DAO模式的核心思想是通过创建一个独立于具体数据库操作的对象(即DAO)...

    Hibernate泛型DAO及使用方法.doc

    而泛型DAO(Data Access Object)则是基于Hibernate进一步抽象出来的一个设计模式,用于提供更通用的数据操作方法。本文档主要探讨了如何在Spring+Hibernate环境中创建和使用泛型DAO。 首先,我们来看一下泛型DAO...

    generic-dao:使用泛型提供基于 Hibernate 的 DAO 层,因此它可以与任何 Hibernate 域对象一起使用

    通用道在 JPA/HIbernate/Spring 环境中使用泛型提供 DAO API,因此它可以与此类架构中的任何 Hibernate POJO 一起使用,而无需为每个域类创建专用的数据访问接口。 Maven 依赖项: &lt;dependency&gt; &lt;groupId&gt;org....

    一个简单的Hibernate泛型Dao的实现 ---- 20160624

    本文将深入探讨如何实现一个简单的Hibernate泛型DAO(数据访问对象),以提高代码的可重用性和可维护性。 首先,我们来看`AbstractHibernateGenericDao`类,这是一个抽象类,它通常会包含一些基本的CRUD(创建、...

Global site tag (gtag.js) - Google Analytics