(一)首先定义DAO接口IGenericDAO,该接口定义了共同的CRUD操作:
public interface IGenericDAO<T,PK extends Serializable>{
public T findById(PK id) ;
public List<T> findAll() ;
public T save(T entity) ;
public void delete(T entity) ;
public void update(T entity) ;
}
(二)针对IGenericDAO接口的Hibernate实现,完成通用的CRUD操作
public class GenericDaoHibernate<T,PK extends Serializable> implements IGenericDAO<T,PK>{
private Class<T> clazz ;
private Session session ;
public GenericDaoHibernate(){}
public T findById(PK id) {
return (T)session.get(clazz,id) ;
}
public List<T> findAll() {
Query query = session.createQuery("from "+clazz.getName()) ;
return query.list() ;
}
public T save(T entity) {
return (T)session.save(entity) ;
}
public void delete(T entity) {
session.delete(entity) ;
}
public void update(T entity) {
session.update(entity) ;
}
}
(三)举例定义一个IUserDAO接口,该接口继承IGenericDAO
public interface IUserDAO extends IGenericDAO〈User,Integer〉{
public User findByName(String username);
}
(四)针对IUserDAO 的Hibernate实现UserDAOHibernate
public class UserDAOHibernate extends GenericDaoHibernate<User,Integer> implements IUserDAO{
..............
}
/* 如何得到泛型的class */
this.clazz = (Class) ((ParameterizedType) getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
相关推荐
本篇文章将深入探讨一个使用Spring注解和Hibernate实现的泛型DAO设计,以提高代码的复用性和可维护性。 首先,`HibernateBaseDao.java`是基础的Hibernate DAO类,它提供了对Hibernate操作的基本封装。这个类通常会...
【泛型DAO】是一种在Java开发中常见的设计模式,它利用了Java泛型特性来提高代码的可重用性和类型安全性。在Java中,DAO(Data Access Object)模式是用来封装对数据库的操作,将业务逻辑与数据访问逻辑分离,使得...
泛型DAO是一种设计模式,它通过定义一个通用的DAO接口或抽象类,可以适用于不同的实体类,减少了重复的代码。这种模式的核心在于利用Java的泛型特性,使得DAO方法可以处理任何类型的实体对象,而无需为每个实体类...
而泛型DAO是一个类型安全的,代码精简的设计模式(相对于传统DAO),尤其在DAO组件数量庞大的时候,代码量的减少更加明显。 泛型DAO的核心是定义一个GenericDao接口,声明基本的CRUD操作: 用hibernate作为持久化...
泛型DAO模式通过抽象化设计,增强了程序的复用性和简化了编程语言,同时在程序运行结束后进行类型检查,避免了运行时的问题,并提高了运行速度。 文章进一步讨论了泛型DAO模式的查询功能设计。查询功能是泛型DAO...
`JdbcTemplate`的泛型Dao实现是一种设计模式,目的是提高代码的可重用性和可维护性。通过定义一个泛型接口,我们可以创建一个通用的数据访问对象(DAO),这个DAO可以处理任何类型的实体类,只要它们遵循一定的规则...
6. **泛型Dao**:在Java开发中,泛型Dao(Generic Dao)是一种设计模式,用于减少重复的数据库操作代码。通过定义一个通用的Dao接口,可以实现对不同类型的实体对象进行CRUD操作,提高了代码的复用性和可维护性。...
在Java开发中,数据访问对象(DAO)模式是一种常见的设计模式,用于封装对数据库的访问操作,以解耦业务逻辑和数据存储。泛型DAO(Generic DAO)是DAO模式的一个扩展,它引入了泛型的概念,提高了代码的复用性和类型...
DAO设计模式主要用于数据库操作,将业务逻辑与数据访问逻辑分离。 **一、泛型基础知识** 1. **基本概念**:泛型(Generics)允许在定义类、接口和方法时添加类型参数,用尖括号`<>`表示。例如,`ArrayList<E>`中的`...
DAO是一种设计模式,它的主要作用是隔离业务逻辑层与数据访问层,提供了一种对数据库进行操作的抽象接口,使得业务逻辑组件不必直接与数据库进行交互。这样做的好处是提高了代码的可测试性,同时降低了耦合度。 在...
在Java Web开发中,数据访问对象(DAO)模式是一种常用的设计模式,用于隔离应用程序与数据库之间的交互。DAO类处理所有数据库操作,使得业务逻辑层可以专注于处理核心业务,而不必关心底层的数据存取细节。而泛型...
而泛型DAO(Data Access Object)则是基于Hibernate进一步抽象出来的一个设计模式,用于提供更通用的数据操作方法。本文档主要探讨了如何在Spring+Hibernate环境中创建和使用泛型DAO。 首先,我们来看一下泛型DAO...
4. **泛型DAO**: 在SSH框架中,泛型DAO是一种常见的设计模式,用于封装对数据库的基本操作,如增删查改。通过泛型,我们可以创建一个通用的DAO接口和实现,减少代码重复,提高代码复用。例如,我们可以创建一个`...
总的来说,"ssh通用泛型DAO"是一种设计模式,旨在简化SSH框架下的数据访问层开发,提高代码复用性,减少重复工作,同时通过泛型提供类型安全的保障。理解和熟练运用这一模式,能够有效地提升Java Web应用的开发效率...
标题中的“基于Hibernate的泛型Dao框架”是指在Java开发中使用Hibernate ORM工具,并结合泛型设计模式构建的数据库访问对象(DAO)框架。这样的框架旨在提高代码复用性,减少重复工作,使得数据访问层的实现更加简洁...
在实际开发中,为了提高代码的可重用性和可维护性,通常会创建泛型DAO(Data Access Object)接口来处理与数据库交互的通用逻辑。本篇将详细介绍"Hibernate泛型DAO接口,大部分通用都已包括"这一主题。 首先,让...
首先,泛型DAO是一种设计模式,旨在减少重复代码并提高代码的可复用性。在SSH框架中,我们可以创建一个基础的泛型DAO接口,如`BaseDao<T>`,其中`T`代表任何实体类。这个接口通常包含基本的CRUD(创建、读取、更新、...