通用泛型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框架”是指在Java开发中使用Hibernate ORM工具,并结合泛型设计模式构建的数据库访问对象(DAO)框架。这样的框架旨在提高代码复用性,减少重复工作,使得数据访问层的实现更加简洁...
基于泛型的通用Dao接口和Hibernate的实现 基于泛型的通用Dao接口是指使用泛型来实现数据访问对象(DAO)的接口,主要是在使用 Hibernate 或 JPA 时使用。泛型可以使得DAO接口更灵活、更通用。 泛型Dao接口的优点:...
"hibernate 通用接口架构"是指利用Hibernate框架,通过设计DAO(Data Access Object)层的接口来实现业务逻辑与数据访问的解耦,从而提高代码的可复用性和可维护性。 首先,我们来理解DAO层的作用。DAO层作为业务...
然而,为了提高代码的复用性和可维护性,通常会设计一个通用DAO(Data Access Object)层来处理基本的数据操作。"hibernate不是泛型的通用DAo1"这个标题暗示了我们讨论的是一种非泛型化的DAO实现,可能是因为开发者...
总的来说,"SSHWithAnnotationDemo"项目展示了如何利用现代Java技术栈的高级特性,包括Struts2、Spring3和Hibernate的注解功能,DAO层的泛型设计以及通用的分页实现,来构建一个高效、可维护的Web应用。这样的实践...
在Java编程领域,DAO(Data Access Object)模式是一种常见的设计模式,用于封装对数据库的操作,以解耦业务逻辑层和数据存储层。泛型通用DAO是这种模式的一种优化,它利用了Java 5.0引入的泛型和反射机制,大大简化...
标题中的“基于Hibernate+Spring 泛型GenericDao”的工程源码指的是一个整合了Spring框架和Hibernate ORM技术的项目,其中使用了泛型设计模式来实现数据访问对象(DAO)。这个项目可能旨在提供一种通用、可复用且...
标题“ssh通用基于泛型的dao”指的是使用SSH(Spring、Struts2、Hibernate)框架开发的一个通用的、基于泛型的DAO实现,它旨在提高开发效率,减少重复工作。 SSH框架是Java企业级应用开发的常用组合,Spring提供了...
泛型DAO是一种设计模式,它通过定义一个通用的DAO接口或抽象类,可以适用于不同的实体类,减少了重复的代码。这种模式的核心在于利用Java的泛型特性,使得DAO方法可以处理任何类型的实体对象,而无需为每个实体类...
总结来说,"Struts2+hibernate+spring整合泛型DAO"是一种常见的Java Web开发模式,它利用三大框架的优势,结合泛型设计,提高了代码复用,降低了维护成本,使得开发者能更专注于业务逻辑,而不是基础架构。
为什么我们要使用通用DAO接口呢,因为我们的数据库操作无非是增删改查,CRUD操作,我们不需要为每个实体去编写一个dao接口,对于相似的实体操作可以只编写一个通用接口,然后采用不同的实现! DAO已经成为持久层...
本文将深入探讨“Spring Hibernate 泛型DAO”这一主题,以及如何通过泛型DAO实现更加高效、可复用的代码。 首先,让我们理解什么是DAO(Data Access Object)模式。DAO是一种设计模式,它的主要作用是隔离业务逻辑...
在IT行业中,数据库操作是开发工作中的重要环节,而DAO(Data Access Object)模式则是用于封装数据访问逻辑的一种设计模式。通用DAO的概念旨在减少数据库操作的重复性工作,提高代码的可复用性和可维护性。本文将...
本篇文章将深入探讨一个使用Spring注解和Hibernate实现的泛型DAO设计,以提高代码的复用性和可维护性。 首先,`HibernateBaseDao.java`是基础的Hibernate DAO类,它提供了对Hibernate操作的基本封装。这个类通常会...
而`Hibernate泛型DAO`则是为了减少代码重复性,提高代码复用性和可维护性的一种设计模式。本文将深入探讨`Hibernate泛型DAO`的实现及其使用方法。 首先,DAO(Data Access Object)模式是一种设计模式,它的主要...
在传统的DAO实现中,每个实体类都需要对应一个DAO接口和其实现类,而GenericDAO通过泛型技术,可以实现一个通用的DAO模板,减少重复代码,提高开发效率。 在Java中,DAO(Data Access Object)模式是用来封装对...
DAO(Data Access Object)模式是软件开发中常用的设计模式,主要目的是为了将数据访问层与业务逻辑层解耦,提供一个抽象层来处理数据库操作。DAO模式的核心思想是通过创建一个独立于具体数据库操作的对象(即DAO)...
而泛型DAO(Data Access Object)则是基于Hibernate进一步抽象出来的一个设计模式,用于提供更通用的数据操作方法。本文档主要探讨了如何在Spring+Hibernate环境中创建和使用泛型DAO。 首先,我们来看一下泛型DAO...
通用道在 JPA/HIbernate/Spring 环境中使用泛型提供 DAO API,因此它可以与此类架构中的任何 Hibernate POJO 一起使用,而无需为每个域类创建专用的数据访问接口。 Maven 依赖项: <dependency> <groupId>org....
本文将深入探讨如何实现一个简单的Hibernate泛型DAO(数据访问对象),以提高代码的可重用性和可维护性。 首先,我们来看`AbstractHibernateGenericDao`类,这是一个抽象类,它通常会包含一些基本的CRUD(创建、...