HibernateDaoSupport的使用
1、HibernateDaoSupport是有spring提供的一个hibernate模版工具类,或不多说,直接上代码
接口 IGenericDao.java
package org.hibernatetemplate.test; /**
* 功能:hibernate 操作 模板基类设计
* @author geenkDC
* @version 1.0 2016-01-04 17:01:42
* @JDK 7
*/
import java.io.Serializable;
import java.util.Collection;
import java.util.List; import org.hibernate.LockMode;
import org.springframework.dao.DataAccessException; public interface IGenericDao<T, ID extends Serializable> { public T load(ID id) throws DataAccessException; public T get(ID id) throws DataAccessException; public boolean contains(T t) throws DataAccessException; public void refresh(T t, LockMode lockMode) throws DataAccessException; public void refresh(T t) throws DataAccessException; public Serializable save(T t) throws DataAccessException; public void saveOrUpdate(T t) throws DataAccessException; public void saveOrUpdateAll(Collection<T> entities) throws DataAccessException; public void update(T t, LockMode lockMode) throws DataAccessException; public void update(T t) throws DataAccessException; public void delete(T t, LockMode lockMode) throws DataAccessException; public void delete(T t) throws DataAccessException; public void deleteAll(Collection<T> entities) throws DataAccessException; public List<T> find(String queryString, Object value) throws DataAccessException; public List<T> find(String queryString, Object[] values) throws DataAccessException; public List<T> find(String queryString) throws DataAccessException; public List<T> list() throws DataAccessException; public List<T> findByNamedQuery(String queryName) throws DataAccessException; public List<T> findByNamedQuery(String queryName, Object value) throws DataAccessException; public List<T> findByNamedQuery(String queryName, Object[] values) throws DataAccessException; }
接口实现类:
package org.hibernatetemplate.test; /**
* 功能:hibernate 操作 模板基类设计
* @author geenkDC
* @version 1.0 2016-01-04 17:01:42
* @JDK 7
*/
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.util.Collection;
import java.util.List; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.LockMode;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport; @SuppressWarnings("unchecked")
public class GenericDao<T, ID extends Serializable> extends HibernateDaoSupport implements IGenericDao<T, ID> {
private Log logger = LogFactory.getLog(getClass()); protected Class<T> entityClass; public GenericDao() { } 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);
} }
怎么使用,自行补脑吧
HibernateDaoSupport的使用的更多相关文章
- HibernateDaoSupport类的使用
HibernateDaoSupport类的使用 1. 继承了HibernateDaoSupport类的类获取session时,已不可用SessionFactory.OpenSessioo ...
- HibernateTemplate和HibernateDaoSupport(spring注入问题)
HibernateTemplate HibernateTemplate是spring提供的一个就hibernate访问持久层技术而言.支持Dao组件的一个工具.HibernateTemplate提供持 ...
- HibernateDaoSupport 源码
package org.springframework.orm.hibernate3.support; import org.hibernate.HibernateException; import ...
- SessionFactory、HibernateTemplate、HibernateDaoSupport之间的关系说明
在接触HibernateTemplate之前,我们知道,在对数据库进行CRUD操作之前,需要开启session.transaction等等.在hibernate学习过程中,我们知道了,得到sessio ...
- HibernateDaoSupport和HibernateTemplate
hibernateTemplate的常用方法: Ø void delete(Object entity):删除指定持久化实例 Ø deleteAll(Collection entities):删除 ...
- HibernateTemplate、HibernateDaoSupport两种方法实现增删改查Good(转)
Spring+Hibernate两种方法实现增删改查 首先,定义一个Customer的bean类,设置好Customer.hbm.xml文件.再定义好一个Dao接口.准备好一个jdbc.propert ...
- HibernateTemplate和HibernateDaoSupport
Spring整合Hibernate后,为Hibernate的DAO提供了两个工具类:HibernateTemplate和HibernateDaoSupport HibernateTemplateHib ...
- HibernateDaoSupport的getSession()与HibernateTemplate的区别
在 Spring+Hibernate的集成环境里,如果DAO直接使用HibernateDaoSupport的getSession()方法获取 session进行数据操作而没有显式地关闭该session ...
- Spring HibernateTemplate与HibernateDaoSupport对比
HibernateTemplate与HibernateDaoSupport两者都是spring整合hibernate提供的模板技术. 对于保存一个对象,HibernateTemplate需要先配置 配 ...
随机推荐
- linux C 数组操作
/****************************************************************** * linux C 数组操作 * 声明: * 本文为解决陈颖奇遇 ...
- Nginx & AWStats 安装、配置、使用
—— 参考IBM文章:THIS , 不一样的指导顺序 —— 1. awstats分析nginx - access.log,网上资料大部分都是下载,然后配置.官网下载地址: http://awstats ...
- java/python中获取当前系统时间,并与字符串相互转换格式,或者转化成秒数,天数等整数
java转换成秒数 Date类有一个getTime()可以换回秒数,例如: public class DateToSecond { public static void main(String[] a ...
- AWK print学习
Awk是一种处理结构数据并输出格式化结果的编程语言, Awk 是其作者 "Aho,Weinberger,Kernighan" 的简称. Awk通常被用来进行格式扫描和处理.通过扫描 ...
- Java中实现复制文件或文件夹
拷贝一个文件的算法比较简单,当然,可以对它进行优化,比如使用缓冲流,提高读写数据的效率等.但是在复制文件夹时,则需要利用Flie类在目标文件夹中创建相应的目录,并且使用递归方法. [java] vi ...
- C# DataGridView的列对象属性探讨 (未完待续)
比较难的几个属性的释义[1]:
- MyBatis批量删除 多态sql,构建in语句
<!--==========================删除==================================== --> <delete id=&quo ...
- 用Apache Kafka构建流数据平台的建议
在<流数据平台构建实战指南>第一部分中,Confluent联合创始人Jay Kreps介绍了如何构建一个公司范围的实时流数据中心.InfoQ前期对此进行过报道.本文是根据第二部分整理而成. ...
- C++11笔记
__func__宏 __func__返回当前的函数名,也可以返回class和struct名. /*返回函数名hello*/ const char* hello() { return __func__; ...
- iOS开发常用输入校验
1.数字字符校验 #define NUMBERSPERIOD @"0123456789." - (BOOL)CheckInput:(NSString *)string { NSCh ...