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);
}
}
分享到:
相关推荐
个人认为还算挺详细的一hibernate4学习笔记,适合入门
**Hibernate 概述** Hibernate 是一个开源的对象关系映射(ORM)框架,它为 Java 开发人员提供了一种在数据库中存储和检索对象的方式。它简化了数据持久化的过程,消除了大量的 JDBC 代码,提高了开发效率。...
JSp+Hiberbate+MySql写的Blog,其中还有不少WEB2.0的东西,我看了好多遍。自己依照程序做了不少功能。 感觉进步很快。特别是Hiberbate对数据库的操作,很适合初学都理解MVC模式。
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开发Hibernate应用程序
Hibernate 是一个强大的 Java ORM(对象关系映射)框架,它允许开发者将数据库操作与 Java 对象进行关联,简化了数据库编程。在这个“Hibernate 增删改查(分页)的例子简单”的主题中,我们将深入探讨如何使用 ...
在Java持久化框架Hibernate中,HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以类和属性的名字来编写查询,而不是直接使用数据库的SQL语法。以下是对HQL的总结,主要关注如何查询数据: ...
**hibernate学习资料归档** Hibernate 是一款强大的Java持久化框架,它简化了数据库与Java应用程序之间的交互,使得开发者可以更加专注于业务逻辑,而无需处理底层的SQL语句。这个归档包含了丰富的学习资源,旨在...
7. **实现DAO**:创建DAO接口和实现,使用Hibernate进行数据库操作。 8. **整合测试**:运行项目,通过浏览器发送请求,检查是否能正常响应并访问数据库。 **知识点详解**: - **依赖注入**:Spring通过DI机制将...
### Hibernbate 3 延迟加载(Lazy)深入解析 #### 一、什么是Hibernbate 3的延迟加载? Hibernbate是Java领域中非常成熟和强大的对象关系映射(ORM)框架,它提供了从Java应用到数据库的持久化层的解决方案。...
**Hibernate实践指南** Hibernate,作为一个强大的Java对象关系映射(ORM)框架,为开发者提供了将数据库操作转化为面向对象代码的能力,极大地简化了Java应用程序中的数据访问层。本指南旨在为初学者提供一个易于...
你可以在Spring的配置文件(spring-context.xml)中找到Bean的定义,包括数据访问对象(DAO)、业务服务接口及其实现等。此外,Spring还通过AOP来实现事务管理,确保数据操作的完整性。 Hibernate5.6.15是Java ORM...
【标题】:“电子商务Ajax+Struts+Hibernate网上书店系统” ... 这个网上书店系统是构建在J2EE(Java 2 Enterprise Edition)平台上,采用了一系列先进的技术和框架来提供高效、稳定的电子商务服务。...
DAO层则利用Hibernate提供的Session接口与数据库进行交互,通过Session的save、update、delete和load等方法,实现对象的持久化操作。 为了使项目能够正常运行,还需要确保所有依赖的jar包已经包含在类路径下,这...
hibernate的基础教程,帮你更快掌握持久化层的技术。
8. **开发流程**:开发过程中,首先在MyEclipse中创建项目,然后配置所需的库,编写实体类和DAO(Data Access Object)层,接着设计Action层实现业务逻辑,最后是视图层的JSP页面展示数据。 总结来说,这个系统结合...
这个是上一个文件也就是hibernate+spring+struts框架的中的java的一些base代码,基本的base类,如通过id找对象,通过id查找集合等等。jar就是上一个hibernate+spring+struts2框架jar包文件,有需要可以自行下载,很...
配置文件如applicationContext.xml定义了Spring的bean,实体类对应数据库中的表,DAO层通过Hibernate4与数据库交互,Service层封装业务逻辑,Controller层则接收并处理来自Jersey的请求,返回JSON响应。 总的来说,...
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-...