`

Hiberbate通用DAO

    博客分类:
  • java
阅读更多
package com.autoabacus.core.dao;


import java.io.Serializable;  
import java.lang.reflect.ParameterizedType;  
import java.sql.SQLException;  
import java.util.Collection;   
import java.util.List;

import org.apache.commons.logging.Log;  
import org.apache.commons.logging.LogFactory;  
import org.hibernate.Criteria;  
import org.hibernate.HibernateException;  
import org.hibernate.LockMode;  
import org.hibernate.Query;  
import org.hibernate.Session;  
import org.hibernate.criterion.DetachedCriteria;  
import org.hibernate.criterion.Projections;  
import org.springframework.dao.DataAccessException;  
import org.springframework.orm.hibernate3.HibernateCallback;  
import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 

@SuppressWarnings("unchecked")  
public  class HBGenericDao<T, ID extends Serializable>  extends HibernateDaoSupport implements IGenericDao<T,ID> {

    private Log logger = LogFactory.getLog(getClass());
   
    protected Class<T> entityClass;  
   
    public HBGenericDao() {  
 
    }  
 
    protected Class getEntityClass() {  
        if (entityClass == null) {  
            entityClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];  
            logger.debug("T class = " + entityClass.getName());  
        }  
        return entityClass;  
    }  
 
    public void saveOrUpdate(T t) throws DataAccessException {  
        this.getHibernateTemplate().saveOrUpdate(t);  
    }  
 
    public T load(ID id) throws DataAccessException {  
        T load = (T) getHibernateTemplate().load(getEntityClass(), id);  
        return load;  
    }  
 
    public T get(ID id) throws DataAccessException {  
        T load = (T) getHibernateTemplate().get(getEntityClass(), id);  
        return load;  
    }  
 
    public boolean contains(T t) throws DataAccessException {  
        return getHibernateTemplate().contains(t);  
    }  
 
    public void delete(T t, LockMode lockMode) throws DataAccessException {  
        getHibernateTemplate().delete(t, lockMode);  
    }  
 
    public void delete(T t) throws DataAccessException {  
        getHibernateTemplate().delete(t);  
    }  
 
    public void deleteAll(Collection<T> entities) throws DataAccessException {  
        getHibernateTemplate().deleteAll(entities);  
    }  
 
    public List<T> find(String queryString, Object value) throws DataAccessException {  
        List<T> find = (List<T>) getHibernateTemplate().find(queryString, value);  
        return find;  
    }  
 
    public List<T> find(String queryString, Object[] values) throws DataAccessException {  
        List<T> find = (List<T>) getHibernateTemplate().find(queryString, values);  
        return find;  
    }  
 
    public List<T> find(String queryString) throws DataAccessException {  
        return (List<T>) getHibernateTemplate().find(queryString);  
    }  
 
    public void refresh(T t, LockMode lockMode) throws DataAccessException {  
        getHibernateTemplate().refresh(t, lockMode);  
    }  
 
    public void refresh(T t) throws DataAccessException {  
        getHibernateTemplate().refresh(t);  
    }  
 
    public Serializable save(T t) throws DataAccessException {  
        return getHibernateTemplate().save(t);  
    }  
 
    public void saveOrUpdateAll(Collection<T> entities) throws DataAccessException {  
        getHibernateTemplate().saveOrUpdateAll(entities);  
    }  
 
    public void update(T t, LockMode lockMode) throws DataAccessException {  
        getHibernateTemplate().update(t, lockMode);  
    }  
 
    public void update(T t) throws DataAccessException {  
        getHibernateTemplate().update(t);  
    }  
 
    public List<T> list() throws DataAccessException {  
        return getHibernateTemplate().loadAll(getEntityClass());  
 
    }  
 
    public List<T> findByNamedQuery(String queryName) throws DataAccessException {  
        return getHibernateTemplate().findByNamedQuery(queryName);  
    }  
 
    public List<T> findByNamedQuery(String queryName, Object value) throws DataAccessException {  
        return getHibernateTemplate().findByNamedQuery(queryName, value);  
    }  
 
    public List<T> findByNamedQuery(String queryName, Object[] values) throws DataAccessException {  
        return getHibernateTemplate().findByNamedQuery(queryName, values);  
    }
}
分享到:
评论

相关推荐

    hiberbate4 学习笔记

    个人认为还算挺详细的一hibernate4学习笔记,适合入门

    Hiberbate参考手册

    **Hibernate 概述** Hibernate 是一个开源的对象关系映射(ORM)框架,它为 Java 开发人员提供了一种在数据库中存储和检索对象的方式。它简化了数据持久化的过程,消除了大量的 JDBC 代码,提高了开发效率。...

    基于Struts+Hiberbate项目创建过程

    3. **创建类与包**:根据项目需求,创建各种业务逻辑类(如Action类)、DAO(Data Access Object)类以及实体类等。一般按照Struts+Hibernate架构设计,会有`action`包、`dao`包、`entity`包等,遵循反域名命名规则...

    JSp+Hiberbate+MySql写的Blog

    JSp+Hiberbate+MySql写的Blog,其中还有不少WEB2.0的东西,我看了好多遍。自己依照程序做了不少功能。 感觉进步很快。特别是Hiberbate对数据库的操作,很适合初学都理解MVC模式。

    Hiberbate-jar包

    jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包

    Eclipse Hiberbate

    利用Eclipse开发Hibernate应用程序

    Hiberbate增删改查(分页)的例子简单的

    Hibernate 是一个强大的 Java ORM(对象关系映射)框架,它允许开发者将数据库操作与 Java 对象进行关联,简化了数据库编程。在这个“Hibernate 增删改查(分页)的例子简单”的主题中,我们将深入探讨如何使用 ...

    Hiberbate hql总结

    在Java持久化框架Hibernate中,HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以类和属性的名字来编写查询,而不是直接使用数据库的SQL语法。以下是对HQL的总结,主要关注如何查询数据: ...

    hiberbate学习资料归档

    **hibernate学习资料归档** Hibernate 是一款强大的Java持久化框架,它简化了数据库与Java应用程序之间的交互,使得开发者可以更加专注于业务逻辑,而无需处理底层的SQL语句。这个归档包含了丰富的学习资源,旨在...

    hiberbate + struts2 +spring 集成实例

    7. **实现DAO**:创建DAO接口和实现,使用Hibernate进行数据库操作。 8. **整合测试**:运行项目,通过浏览器发送请求,检查是否能正常响应并访问数据库。 **知识点详解**: - **依赖注入**:Spring通过DI机制将...

    Hiberbate 3延迟加载(Lazy)介绍

    ### Hibernbate 3 延迟加载(Lazy)深入解析 #### 一、什么是Hibernbate 3的延迟加载? Hibernbate是Java领域中非常成熟和强大的对象关系映射(ORM)框架,它提供了从Java应用到数据库的持久化层的解决方案。...

    Hiberbate练习

    **Hibernate实践指南** Hibernate,作为一个强大的Java对象关系映射(ORM)框架,为开发者提供了将数据库操作转化为面向对象代码的能力,极大地简化了Java应用程序中的数据访问层。本指南旨在为初学者提供一个易于...

    Struts2.5.22+Spring5.3.10+Hiberbate5.6.15整合练习源码包

    你可以在Spring的配置文件(spring-context.xml)中找到Bean的定义,包括数据访问对象(DAO)、业务服务接口及其实现等。此外,Spring还通过AOP来实现事务管理,确保数据操作的完整性。 Hibernate5.6.15是Java ORM...

    电子商务Ajax+Struts+Hiberbate网上书店系统

    【标题】:“电子商务Ajax+Struts+Hibernate网上书店系统” ... 这个网上书店系统是构建在J2EE(Java 2 Enterprise Edition)平台上,采用了一系列先进的技术和框架来提供高效、稳定的电子商务服务。...

    springSpringMvcHiberbateEasyWorkFramedemo

    DAO层则利用Hibernate提供的Session接口与数据库进行交互,通过Session的save、update、delete和load等方法,实现对象的持久化操作。 为了使项目能够正常运行,还需要确保所有依赖的jar包已经包含在类路径下,这...

    hiberbate基础入门

    hibernate的基础教程,帮你更快掌握持久化层的技术。

    一个简单的基于sring+hiberbate+struts2的人员管理系统,myeclipse直接加入就可以用

    8. **开发流程**:开发过程中,首先在MyEclipse中创建项目,然后配置所需的库,编写实体类和DAO(Data Access Object)层,接着设计Action层实现业务逻辑,最后是视图层的JSP页面展示数据。 总结来说,这个系统结合...

    Web开发中spring+hiberbate+struts2框架开发base类和框架配置

    这个是上一个文件也就是hibernate+spring+struts框架的中的java的一些base代码,基本的base类,如通过id找对象,通过id查找集合等等。jar就是上一个hibernate+spring+struts2框架jar包文件,有需要可以自行下载,很...

    Spring4 Hibernate4 jersey项目源码

    配置文件如applicationContext.xml定义了Spring的bean,实体类对应数据库中的表,DAO层通过Hibernate4与数据库交互,Service层封装业务逻辑,Controller层则接收并处理来自Jersey的请求,返回JSON响应。 总的来说,...

    hib-mapping-3.0.dtd

    hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-3.0.dtd hibernate-mapping-...

Global site tag (gtag.js) - Google Analytics