package com.base;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Criterion;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public abstract class GenericHibernateDao<T extends Serializable,ID extends Serializable> extends HibernateDaoSupport implements GenericDao<T,ID> {
//持久化类
private Class<T> persistentClass;
public GenericHibernateDao(){
this.persistentClass = (Class<T>)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];
}
public Class<T> getPersistentClass(){
return persistentClass;
}
//增加
public T create(T entity){
this.getHibernateTemplate().save(entity);
return entity;
}
//删除
public void delete(ID id){
this.getHibernateTemplate().delete(findById(id));
}
//修改
public T update(T entity){
this.getHibernateTemplate().update(entity);
return entity;
}
//按主键查询
public T findById(ID id){
return (T)this.getHibernateTemplate().load(persistentClass, id);
}
//批量更新
public void bulkUpdate(String hql,Object[] params){
this.getHibernateTemplate().bulkUpdate(hql,params);
}
//查找所有记录
public List<T> findAll(){
return findByCriteria(new ArrayList<Criterion>());
}
//按HQL查询
public List findByHQL(String hql,Object[] params){
return this.getHibernateTemplate().find(hql,params);
}
//分页查询
public PageBean findByPage(final String hql,final int pagecode,final int pagesize,final Object[] params){
return (PageBean)this.getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException,SQLException{
PageBean pb = new PageBean();
//数据
Query q = session.createQuery(hql);
for(int i=0;i<params.length;i++){
q.setParameter(i, params[i]);
}
q.setMaxResults(pagesize);
q.setFirstResult((pagecode-1)*pagesize);
pb.setData(q.list());
//总记录数
q = session.createQuery("select count(*)"+hql.substring(hql.toLowerCase().indexOf("from")));
for(int i=0;i<params.length;i++){
q.setParameter(i, params[i]);
}
pb.setAllcount((Integer)q.uniqueResult());
pb.setPagecode(pagecode);
pb.setPagesize(pagesize);
return pb;
}
});
}
//内部使用条件查询方法
protected List<T> findByCriteria(final List<Criterion> criterion){
return (List<T>)this.getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException,SQLException{
Criterion crit = (Criterion)session.createCriteria(getPersistentClass());
for(Criterion c:criterion){
((List<T>) crit).add((T) c);
}
return ((Query) crit).list();
}
});
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
ssh2框架整合与应用,相关的配置文件
共77个文件
jar:35个
class:13个
java:11个
需积分: 10 90 下载量 84 浏览量
2009-09-04
11:52:10
上传
评论
收藏 12.15MB RAR 举报
温馨提示
ssh2 相关的配置文件 重点演示一个登入来熟悉struts2+Spring2+Hibernate3
资源推荐
资源详情
资源评论
收起资源包目录
SSH2-Login.rar (77个子文件)
SSH2-Login
.project 2KB
.settings
org.eclipse.jdt.core.prefs 330B
.mymetadata 303B
WebRoot
Error.jsp 290B
WEB-INF
web.xml 729B
applicationContext.xml 2KB
lib
commons-pool-1.1.jar 39KB
commons-logging.jar 37KB
log4j-1.2.11.jar 342KB
hibernate-commons-annotations.jar 65KB
hibernate-annotations.jar 259KB
commons-dbcp-1.1.jar 98KB
jta.jar 9KB
hibernate3.jar 2.15MB
javassist.jar 460KB
ognl-2.6.11.jar 164KB
jaxen-1.1-beta-7.jar 222KB
commons-logging-1.0.4.jar 37KB
ehcache-1.2.3.jar 203KB
xwork-2.0.7.jar 449KB
xml-apis.jar 121KB
msbase.jar 280KB
jdbc2_0-stdext.jar 7KB
commons-collections-2.1.1.jar 171KB
mssqlserver.jar 66KB
ejb3-persistence.jar 49KB
freemarker-2.3.8.jar 784KB
jaas.jar 102KB
hibernate-entitymanager.jar 114KB
struts2-core-2.0.14.jar 2.22MB
dom4j-1.6.1.jar 307KB
asm.jar 26KB
msutil.jar 58KB
hibernate-validator.jar 60KB
xerces-2.6.2.jar 987KB
jboss-archive-browsing.jar 404KB
cglib-2.1.3.jar 276KB
struts2-spring-plugin-2.0.11.jar 9KB
antlr-2.7.6.jar 433KB
asm-attrs.jar 16KB
spring.jar 2.81MB
classes
com
dao
UserDaoImpl.class 1KB
UserDao.class 154B
hibernate
voo
Users.class 845B
User1.hbm.xml 806B
User1.class 1KB
Users.hbm.xml 696B
test
Test.class 928B
action
LoginAction.class 2KB
base
GenericHibernateDao.class 4KB
PageBean.class 1KB
GenericHibernateDao$1.class 2KB
GenericDao.class 715B
GenericHibernateDao$2.class 2KB
bmo
UserManagerImpl.class 695B
UserManager.class 162B
struts.xml 704B
index.jsp 1KB
META-INF
MANIFEST.MF 39B
Success.jsp 298B
.myeclipse
src
com
dao
UserDaoImpl.java 584B
UserDao.java 155B
hibernate
voo
Users.java 703B
User1.java 880B
User1.hbm.xml 806B
Users.hbm.xml 696B
test
Test.java 775B
action
LoginAction.java 663B
base
PageBean.java 928B
GenericHibernateDao.java 3KB
GenericDao.java 608B
bmo
UserManager.java 127B
UserManagerImpl.java 378B
struts.xml 704B
.springBeans 479B
.classpath 3KB
.myhibernatedata 480B
共 77 条
- 1
资源评论
fengyuyun99
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
- 课设-内部排序算法比较 包括冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序.zip
- Python排序算法.zip
- C语言实现直接插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序、归并排序、计数排序,并带图详解.zip
- 常用工具集参考用于图像等数据处理
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功