`

泛型DAO的设计模式

 
阅读更多

(一)首先定义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];  

分享到:
评论

相关推荐

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

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

    泛型dao

    【泛型DAO】是一种在Java开发中常见的设计模式,它利用了Java泛型特性来提高代码的可重用性和类型安全性。在Java中,DAO(Data Access Object)模式是用来封装对数据库的操作,将业务逻辑与数据访问逻辑分离,使得...

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

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

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

    而泛型DAO是一个类型安全的,代码精简的设计模式(相对于传统DAO),尤其在DAO组件数量庞大的时候,代码量的减少更加明显。 泛型DAO的核心是定义一个GenericDao接口,声明基本的CRUD操作: 用hibernate作为持久化...

    S2SH整合例子 注解配置 JSON 泛型Dao

    6. **泛型Dao**:在Java开发中,泛型Dao(Generic Dao)是一种设计模式,用于减少重复的数据库操作代码。通过定义一个通用的Dao接口,可以实现对不同类型的实体对象进行CRUD操作,提高了代码的复用性和可维护性。...

    泛型DAO,注释详细

    在Java开发中,数据访问对象(DAO)模式是一种常见的设计模式,用于封装对数据库的访问操作,以解耦业务逻辑和数据存储。泛型DAO(Generic DAO)是DAO模式的一个扩展,它引入了泛型的概念,提高了代码的复用性和类型...

    spring hibernate 泛型DAO

    DAO是一种设计模式,它的主要作用是隔离业务逻辑层与数据访问层,提供了一种对数据库进行操作的抽象接口,使得业务逻辑组件不必直接与数据库进行交互。这样做的好处是提高了代码的可测试性,同时降低了耦合度。 在...

    泛型DAO模型设计课堂笔记

    DAO设计模式主要用于数据库操作,将业务逻辑与数据访问逻辑分离。 **一、泛型基础知识** 1. **基本概念**:泛型(Generics)允许在定义类、接口和方法时添加类型参数,用尖括号`&lt;&gt;`表示。例如,`ArrayList&lt;E&gt;`中的`...

    Hibernate泛型DAO及使用方法.doc

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

    SSH 泛型DAO分页

    4. **泛型DAO**: 在SSH框架中,泛型DAO是一种常见的设计模式,用于封装对数据库的基本操作,如增删查改。通过泛型,我们可以创建一个通用的DAO接口和实现,减少代码重复,提高代码复用。例如,我们可以创建一个`...

    ssh通用泛型DAO

    总的来说,"ssh通用泛型DAO"是一种设计模式,旨在简化SSH框架下的数据访问层开发,提高代码复用性,减少重复工作,同时通过泛型提供类型安全的保障。理解和熟练运用这一模式,能够有效地提升Java Web应用的开发效率...

    基于hibernate的泛型Dao框架

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

    Hibernate泛型DAO接口,大部分通用都已包括

    在实际开发中,为了提高代码的可重用性和可维护性,通常会创建泛型DAO(Data Access Object)接口来处理与数据库交互的通用逻辑。本篇将详细介绍"Hibernate泛型DAO接口,大部分通用都已包括"这一主题。 首先,让...

    Java Web程序运用中泛型DAO的作用.pdf

    目的,研究泛型DAO模式在java Web程序...方法,通过研究泛型DAO模式的设计理念及工作过程,与已经存在的DAO模式进行对比,分析其在java Web程序运用中的作用。结果:在编辑了泛型DAO模式之后的java Web程序中,程序运算...

    JdbcTemplate通用泛型Dao实现

    `JdbcTemplate`的泛型Dao实现是一种设计模式,目的是提高代码的可重用性和可维护性。通过定义一个泛型接口,我们可以创建一个通用的数据访问对象(DAO),这个DAO可以处理任何类型的实体类,只要它们遵循一定的规则...

    ssh整合下的通用泛型DAO+分页

    首先,泛型DAO是一种设计模式,旨在减少重复代码并提高代码的可复用性。在SSH框架中,我们可以创建一个基础的泛型DAO接口,如`BaseDao&lt;T&gt;`,其中`T`代表任何实体类。这个接口通常包含基本的CRUD(创建、读取、更新、...

    Hibernate泛型DAO及使用方法

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

    DAO模式设计

    - `泛型DAO设计.doc`:可能探讨了泛型DAO的多种设计策略和最佳实践。 - `泛型dao的实现.doc`:可能详细描述了创建泛型DAO的具体步骤,包括如何处理CRUD(Create, Read, Update, Delete)操作。 - `使用AOP实现类型...

Global site tag (gtag.js) - Google Analytics