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需要先配置 配 ...
随机推荐
- Unit testing Cmockery 简单使用
/********************************************************************** * Unit testing Cmockery 简单使用 ...
- poj 3160 Father Christmas flymouse
// 题目描述:从武汉大学ACM集训队退役后,flymouse 做起了志愿者,帮助集训队做一些琐碎的事情,比如打扫集训用的机房等等.当圣诞节来临时,flymouse打扮成圣诞老人给集训队员发放礼物.集 ...
- 多线程程序设计学习(2)之single threaded execution pattern
Single Threaded Execution Pattern[独木桥模式] 一:single threaded execution pattern的参与者--->SharedResourc ...
- 【策略】HDOJ-1205-吃糖果
[题目链接:HDOJ-1205] 思路:直接看题毫无思路... 看了别人的思路,到现在还懵懵懂懂. 只要除了数目最多的糖果以外的其他所有糖果的数目之和加1(小心这里要用int64),大于等于数目最 ...
- 使用ffmpeg实现转码样例(代码实现)
分类: C/C++ 使用ffmpeg实现转码样例(代码实现) 使用ffmpeg转码主要工作如下: Demux -> Decoding -> Encoding -> Muxing 其中 ...
- 【管理工具】Git的安装与使用
公司与公司合并,需要学习一下git的使用.从网上找了一篇资料,完全满足需求,先赞一个. http://www.cnblogs.com/Bonker/p/3441781.html 下面记录一下自己的安装 ...
- codeforces 685B Kay and Snowflake 树的重心
分析:就是找到以每个节点为根节点的树的重心 树的重心可以看这三篇文章: 1:http://wenku.baidu.com/link?url=yc-3QD55hbCaRYEGsF2fPpXYg-iO63 ...
- Redhat修改主机名及网络配置
通过命令修改主机名 hostname #查看当前主机的主机名 hostname NEWHOSTNAME #临时修改当前主机名 通过配置文件修改主机名 vi /etc/sysconfig/network ...
- CSS hack大全
1.什么是CSS hack? CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的,CSS hack就是让你记住这个标准),以 ...
- 提取数字、英文、中文、过滤重复字符等SQL函数(含判断字段是否有中文)
--SQL 判断字段值是否有中文 create function fun_getCN(@str nvarchar(4000)) returns nvarchar(4000) a ...