`
497228829
  • 浏览: 4646 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

SSH整合分页出现'sessionFactory' or 'hibernateTemplate' is required

 
阅读更多

在用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整合分页Demo入门"中,我们将深入理解如何在SSH框架下实现数据的分页展示,这对于大型Web应用来说是非常重要的功能,能够有效地管理大量数据并提高用户体验。 首先,我们需要了解SSH框架的基础知识。...

    ssh整合 简单分页

    标题"ssh整合 简单分页"暗示了这个项目是关于如何在SSH框架下实现分页功能的。分页是Web应用中常见的需求,它允许用户以较小的数据块浏览大量信息,提高用户体验,减轻服务器负载。 分页通常涉及到以下几个关键步骤...

    SSH整合CRUD案例+分页功能的实现+教学文档

    阅读“Struts2.2+Hibernate3.3+Spring2.5.6整合CRUD.pdf”和“2.SSH基础上的分页功能的实现.pdf”将有助于深入理解SSH整合以及分页功能的实现。同时,“说明.txt”可能包含了项目运行的环境配置、启动指南或其他注意...

    SSH实现分页实例

    SSH(Struts2 + Spring + Hibernate)是一个经典的Java Web开发框架,它整合了三大主流开源框架,用于构建高效、可维护性高的企业级应用程序。在这个"SSH实现分页实例"中,我们将深入探讨如何在SSH框架下实现数据的...

    ssh整合所需要的jar包

    - 在Spring的`applicationContext.xml`中配置DataSource、SessionFactory、HibernateTemplate或JPA相关配置。 - 创建Action类,并在Spring中定义bean,实现依赖注入。 - 配置Hibernate的`hibernate.cfg.xml`,...

    SSH整合分页

    接着,Spring在SSH整合中起到了胶水的作用,它可以管理Struts的Action和Hibernate的SessionFactory。通过Spring的AOP(面向切面编程)可以实现事务管理,确保数据操作的原子性和一致性。此外,Spring的IoC(控制反转...

    ssh整合jar包

    SSH整合是Java Web开发中的一种常见模式,它结合了Struts2、Spring和Hibernate三个开源框架,以实现高效、灵活的MVC(Model-View-Controller)架构。在这个"ssh整合jar包"中,包含了这三个框架的核心库和其他必要的...

    ssh框架整合分页--内部类回调函数

    SSH框架整合分页——内部类回调函数 SSH(Spring、Struts2、Hibernate)是Java Web开发中常用的一种集成框架,它将Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面...

    ssh整合所需所有架包

    SSH整合是Java开发中一种常见的框架集成方式,它结合了Struts2、Spring和Hibernate三个开源框架,以实现高效、灵活的企业级应用开发。这里提到的"ssh整合所需所有架包"是一个包含这三个框架相应版本的集合,确保它们...

    一个模拟Spring将SessionFactory注入到HibernateTemplate的小例子

    在Spring框架中,整合Hibernate是常见的操作,Spring通过其强大的依赖注入(DI)特性,能够帮助我们更好地管理和控制SessionFactory以及与Hibernate相关的操作。本示例将深入探讨如何使用Spring将SessionFactory注入...

    ssh.zip_SSH 数据分页_ssh分页实现

    SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架,它整合了三大开源框架,为开发者提供了高效、简洁的开发环境。在这个名为"ssh.zip_SSH 数据分页_ssh分页实现"的压缩包中,我们可以看到一个关键...

    ssh实现分页实例

    SSH(Struts2、Spring和...通过这个"SSH实现分页实例"的学习资料,开发者可以了解到如何将SSH框架的优势充分利用,构建出优雅的分页解决方案。这有助于提高用户体验,降低服务器负载,同时让代码更易于理解和维护。

    SSH整合原理以及步骤详解

    SSH整合是软件开发中的一种常见技术,主要用于Spring、Struts和Hibernate这三大开源框架的集成。这篇文章将深入探讨SSH整合的原理以及实现步骤,帮助初学者掌握这一关键技能。 **一、SSH框架简介** 1. **Spring...

    SSH整合jar包

    SSH整合jar包是Java开发中常见的一种框架集成方式,它涉及到Spring、Struts2和Hibernate这三个主流的开源框架。在Java Web开发中,SSH(Spring、Struts2、Hibernate)被广泛使用,因为它们能够有效地解决企业级应用...

    SSH整合过程(图)

    SSH整合是Java开发中常见的一个技术实践,它指的是Spring、Struts和Hibernate三个开源框架的集成。这三种框架分别负责不同的职责:Spring作为应用上下文和依赖注入框架,管理对象的生命周期;Struts则处理MVC(Model...

    SSH整合项目

    SSH整合项目指的是在Java开发中,使用Spring、Struts2和Hibernate这三个开源框架进行集成的Web应用程序项目。这个项目描述中提到的是一个已经搭建完成的框架,但是去掉了Hibernate的配置文件,可能意味着项目选择了...

    SSH整合小项目

    SSH整合是Java Web开发中的一种常见技术栈,主要包括Spring、Struts和Hibernate这三个框架的集成。这个名为"SSH整合小项目"的资源提供了一个实践示例,帮助开发者理解和掌握这三大框架协同工作的机制。 首先,...

    SSH整合的一个案例

    SSH整合在IT行业中通常指的是Spring、Struts和Hibernate这三个开源框架的集成应用。Spring作为核心容器,负责管理对象(依赖注入DI)和事务处理;Struts则是MVC(Model-View-Controller)设计模式的实现,处理用户...

    SSH整合遇到的问题及解决方案

    5. **Hibernate整合**:在整合Hibernate时,需要设置SessionFactory,并在Spring中配置DataSource。此外,还要确保实体类与数据库表的映射配置正确,以及HQL或SQL查询没有语法错误。 6. **AOP(面向切面编程)**:...

    ssh实现分页功能(代码都有注释包括配置文件)

    - 在处理分页时,要确保正确管理`SessionFactory`和`Session`。通常在Service层的开始打开Session,查询完成后关闭Session,以防止内存泄漏和资源浪费。 - 如果涉及到事务处理,注意在恰当的地方开始和结束事务,...

Global site tag (gtag.js) - Google Analytics