在用hibernateDaoSupport实现分页后,启动的时候报错:
'sessionFactory' or 'hibernateTemplate' is required
解决的办法是:
public abstract class AGenericDao<T> extends HibernateDaoSupport { // get the realType--Class of T private Class<T> clazz; private SessionFactory mySessionFactory ;// 不能直接重写HibernateDaoSupport上的finnal修饰的该getter和setter public void setMySessionFactory(SessionFactory mySessionFactory) { super.setSessionFactory(mySessionFactory); } // get the realType of T by the constructor @SuppressWarnings("unchecked") public AGenericDao() { this.clazz = (Class<T>) ((ParameterizedType) this.getClass() .getGenericSuperclass()).getActualTypeArguments()[0]; } public void save(T t) { Session session = mySessionFactory.getCurrentSession(); session.save(t); } public void update(T t) { Session session = mySessionFactory.getCurrentSession(); session.update(t); } public void delete(T t) { // Session session = mySessionFactory.getCurrentSession(); session.delete(t); } @SuppressWarnings("unchecked") public T get(Long id) { Session session = mySessionFactory.getCurrentSession(); return (T) session.get(clazz, id); } @SuppressWarnings("unchecked") public List<T> list() { Session session = mySessionFactory.getCurrentSession(); return session.createQuery("FROM " + clazz.getName()).list(); } /** * 分页查询 * * @param hql * 查询的条件 * @param offset * 开始记录 * @param length * 一次查询几条记录 * @return */ @SuppressWarnings("unchecked") public List<T> queryForPage(final String hql, final int offset, final int length) { List<T> list = super.getHibernateTemplate().executeFind( new HibernateCallback<List<T>>() { @Override public List<T> doInHibernate(Session session) throws HibernateException, SQLException { // TODO Auto-generated method stub Query query = session.createQuery(hql); query.setFirstResult(offset); query.setMaxResults(length); List<T> list = query.list(); return list; } }); return list; } /** * 查询所有记录数 * * @return 总记录数 */ public int getAllRowCount(String hql) { return getHibernateTemplate().find(hql).size(); } }
网上查找相关资料后发现有价值的总结
1、 继承了HibernateDaoSupport类的类获取session时,已不可用SessionFactory.OpenSessioon的形式来获 取Session了,由于HibernateDaoSupport本身已有获取session的方法getSession(),所以直接用Session se=this.getSession();来获取,
2、 在依据hql获取用户信息时,继承了HibernateDaoSupport类的类中不能在使用Query类了,而是用List<Ssh> list = this.getHibernateTemplate().find(hql);形式来获取实体类集合
相关推荐
在这个"SSH整合分页Demo入门"中,我们将深入理解如何在SSH框架下实现数据的分页展示,这对于大型Web应用来说是非常重要的功能,能够有效地管理大量数据并提高用户体验。 首先,我们需要了解SSH框架的基础知识。...
标题"ssh整合 简单分页"暗示了这个项目是关于如何在SSH框架下实现分页功能的。分页是Web应用中常见的需求,它允许用户以较小的数据块浏览大量信息,提高用户体验,减轻服务器负载。 分页通常涉及到以下几个关键步骤...
阅读“Struts2.2+Hibernate3.3+Spring2.5.6整合CRUD.pdf”和“2.SSH基础上的分页功能的实现.pdf”将有助于深入理解SSH整合以及分页功能的实现。同时,“说明.txt”可能包含了项目运行的环境配置、启动指南或其他注意...
SSH(Struts2 + Spring + Hibernate)是一个经典的Java Web开发框架,它整合了三大主流开源框架,用于构建高效、可维护性高的企业级应用程序。在这个"SSH实现分页实例"中,我们将深入探讨如何在SSH框架下实现数据的...
- 在Spring的`applicationContext.xml`中配置DataSource、SessionFactory、HibernateTemplate或JPA相关配置。 - 创建Action类,并在Spring中定义bean,实现依赖注入。 - 配置Hibernate的`hibernate.cfg.xml`,...
接着,Spring在SSH整合中起到了胶水的作用,它可以管理Struts的Action和Hibernate的SessionFactory。通过Spring的AOP(面向切面编程)可以实现事务管理,确保数据操作的原子性和一致性。此外,Spring的IoC(控制反转...
SSH整合是Java Web开发中的一种常见模式,它结合了Struts2、Spring和Hibernate三个开源框架,以实现高效、灵活的MVC(Model-View-Controller)架构。在这个"ssh整合jar包"中,包含了这三个框架的核心库和其他必要的...
SSH框架整合分页——内部类回调函数 SSH(Spring、Struts2、Hibernate)是Java Web开发中常用的一种集成框架,它将Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面...
SSH整合是Java开发中一种常见的框架集成方式,它结合了Struts2、Spring和Hibernate三个开源框架,以实现高效、灵活的企业级应用开发。这里提到的"ssh整合所需所有架包"是一个包含这三个框架相应版本的集合,确保它们...
在Spring框架中,整合Hibernate是常见的操作,Spring通过其强大的依赖注入(DI)特性,能够帮助我们更好地管理和控制SessionFactory以及与Hibernate相关的操作。本示例将深入探讨如何使用Spring将SessionFactory注入...
SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架,它整合了三大开源框架,为开发者提供了高效、简洁的开发环境。在这个名为"ssh.zip_SSH 数据分页_ssh分页实现"的压缩包中,我们可以看到一个关键...
SSH(Struts2、Spring和...通过这个"SSH实现分页实例"的学习资料,开发者可以了解到如何将SSH框架的优势充分利用,构建出优雅的分页解决方案。这有助于提高用户体验,降低服务器负载,同时让代码更易于理解和维护。
SSH整合是软件开发中的一种常见技术,主要用于Spring、Struts和Hibernate这三大开源框架的集成。这篇文章将深入探讨SSH整合的原理以及实现步骤,帮助初学者掌握这一关键技能。 **一、SSH框架简介** 1. **Spring...
SSH整合jar包是Java开发中常见的一种框架集成方式,它涉及到Spring、Struts2和Hibernate这三个主流的开源框架。在Java Web开发中,SSH(Spring、Struts2、Hibernate)被广泛使用,因为它们能够有效地解决企业级应用...
SSH整合是Java开发中常见的一个技术实践,它指的是Spring、Struts和Hibernate三个开源框架的集成。这三种框架分别负责不同的职责:Spring作为应用上下文和依赖注入框架,管理对象的生命周期;Struts则处理MVC(Model...
SSH整合项目指的是在Java开发中,使用Spring、Struts2和Hibernate这三个开源框架进行集成的Web应用程序项目。这个项目描述中提到的是一个已经搭建完成的框架,但是去掉了Hibernate的配置文件,可能意味着项目选择了...
SSH整合是Java Web开发中的一种常见技术栈,主要包括Spring、Struts和Hibernate这三个框架的集成。这个名为"SSH整合小项目"的资源提供了一个实践示例,帮助开发者理解和掌握这三大框架协同工作的机制。 首先,...
SSH整合在IT行业中通常指的是Spring、Struts和Hibernate这三个开源框架的集成应用。Spring作为核心容器,负责管理对象(依赖注入DI)和事务处理;Struts则是MVC(Model-View-Controller)设计模式的实现,处理用户...
5. **Hibernate整合**:在整合Hibernate时,需要设置SessionFactory,并在Spring中配置DataSource。此外,还要确保实体类与数据库表的映射配置正确,以及HQL或SQL查询没有语法错误。 6. **AOP(面向切面编程)**:...
- 在处理分页时,要确保正确管理`SessionFactory`和`Session`。通常在Service层的开始打开Session,查询完成后关闭Session,以防止内存泄漏和资源浪费。 - 如果涉及到事务处理,注意在恰当的地方开始和结束事务,...