`
jaesonchen
  • 浏览: 311494 次
  • 来自: ...
社区版块
存档分类
最新评论

spring hibernate dao support

 
阅读更多
package com.jaeson.springstudy.dao.impl;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate4.HibernateCallback;
import org.springframework.orm.hibernate4.HibernateTemplate;
import org.springframework.stereotype.Repository;

import com.jaeson.hibernatestudy.bean.Student;
import com.jaeson.springstudy.dao.StudentDao;

@Repository("hibernateTemplateStudentDao")
public class HibernateTemplateStudentDaoImpl implements StudentDao {

	private HibernateTemplate hibernateTemplate;
	
	@Autowired
	public void setSessionFactory(SessionFactory sessionFactory) {
		
        this.hibernateTemplate = new HibernateTemplate(sessionFactory);
    }
	
	@Override
	public Student findById(String id) {
		
		return this.hibernateTemplate.load(Student.class, id);
	}

	@Override
	public List<Student> findByQueryString(final String queryString, final Object... params) {
		
		return this.hibernateTemplate.execute(new HibernateCallback<List<Student>>() {
			@SuppressWarnings("unchecked")
			@Override 
			public List<Student> doInHibernate(Session session) {
				Query query = session.createQuery(queryString);
				for (int i = 0; params != null && i < params.length; i++) {
					
					query.setParameter(i, params[i]);
				}
                return query.list();
            }
        });
	}

	@Override
	public void update(Student entity) {

		this.hibernateTemplate.update(entity);
	}

	@Override
	public String save(Student entity) {
		
		return (String) this.hibernateTemplate.save(entity);
	}

	@Override
	public void saveOrUpdate(Student entity) {
		
		this.hibernateTemplate.saveOrUpdate(entity);
	}

	@Override
	public void delete(Student entity) {
		
		this.hibernateTemplate.delete(entity);
	}

	@Override
	public void deleteById(String id) {
		
		this.delete(this.findById(id));
	}

	@Override
	public void studentMethod() {
		
		throw new UnsupportedOperationException("studentMethod unsupported");
	}

	@Override
	public List<Student> findByClassid(String id) {
		
		return this.findByQueryString("from Student s where s.clazz.id=?", new Object[]{id});
	}
}

 

package com.jaeson.springstudy.dao.impl;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate4.SessionFactoryUtils;
import org.springframework.orm.hibernate4.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;

import com.jaeson.hibernatestudy.bean.Student;
import com.jaeson.springstudy.dao.StudentDao;

@Repository("hibernateDaoSupportStudentDao")
public class HibernateDaoSupportStudentDaoImpl extends HibernateDaoSupport
		implements StudentDao {

	@Autowired
	public void setMySessionFactory(SessionFactory sessionFactory) {
		
        super.setSessionFactory(sessionFactory);
    }
	
	@Override
	public Student findById(String id) {

		return this.getHibernateTemplate().load(Student.class, id);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Student> findByQueryString(String queryString, Object... params) {
		
		Session session = this.currentSession();
		try {
	        	
			Query query = session.createQuery(queryString);
			for (int i = 0; params != null && i < params.length; i++) {
					
				query.setParameter(i, params[i]);
			}
			return query.list();
			
		} catch (HibernateException ex) {
			throw SessionFactoryUtils.convertHibernateAccessException(ex);
		}
	}

	@Override
	public void update(Student entity) {
		
		this.getHibernateTemplate().update(entity);
	}

	@Override
	public String save(Student entity) {

		return (String) this.getHibernateTemplate().save(entity);
	}

	@Override
	public void saveOrUpdate(Student entity) {
		
		this.getHibernateTemplate().saveOrUpdate(entity);
	}

	@Override
	public void delete(Student entity) {

		this.getHibernateTemplate().delete(entity);
	}

	@Override
	public void deleteById(String id) {
		
		this.delete(this.findById(id));
	}

	@Override
	public void studentMethod() {
		
		throw new UnsupportedOperationException("studentMethod unsupported");
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Student> findByClassid(String id) {
		
		Criteria criteria = this.currentSession().createCriteria(Student.class);
        criteria.add(Restrictions.eq("clazz.id", id));
        
        return criteria.list();
	}
}

 

 

分享到:
评论

相关推荐

    使用MyEclipse下整合Spring和Hibernate

    在`applicationContext.xml`中配置Hibernate的DAO层,使用Spring的`HibernateTemplate`或`HibernateDaoSupport`。例如: ```xml &lt;bean id="userDao" class="com.example.dao.UserDaoImpl"&gt; ``` 在DAO实现类中注入...

    J2EE大家好.rar_J2EE_hibernate_spring_spring hibernate

    Spring的Hibernate支持模块(Spring Hibernate Support)使得整合两者变得非常简单,它提供了SessionFactory的管理,事务的协调,以及在服务层自动关闭Session的功能,减少了手动管理数据库连接的麻烦。Spring的DAO...

    SpringMVC与Hibernate整合所需jar

    &lt;bean class="org.springframework.orm.hibernate5.support.OpenSessionInViewInterceptor"&gt; ``` 在实际应用中,我们还需要编写相应的DAO(数据访问对象)和Service层来处理业务逻辑,同时使用注解或XML...

    spring、hibernate jar包介绍

    8. **spring-support.jar**:提供 UI 模板、邮件、脚本、缓存和任务调度等服务,依赖 spring-context,以及其他如 Velocity、FreeMarker、JasperReports、BSH、Groovy、JRuby、Quartz 和 EHCache。 9. **spring-web...

    用eclipse搭建SSH架构(struts + spring + hibernate)

    因此,在实现 DAO 接口的同时,DAO 实现类需要继承自 Spring 的 org.springframework.orm.hibernate3.support.HibernateDaoSupport。 5. 配置 Spring,让 Spring 管理 Hibernate 配置数据源,以便让 Spring 统一...

    struts2+spring+hibernate

    import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class DatasDAO extends HibernateDaoSupport { private static final Logger log = LoggerFactory.getLogger(DatasDAO....

    Flex+J2EE实例(cairngorm+blazeDS+hibernate+spring) part3.pdf

    其中一个重要的文件是`HibernateDao.java`,该文件提供了一组通用的数据库操作方法,如下所示: ```java package com.core.hibernate; import java.io.Serializable; import java.util.List; import org....

    JSF+Spring+Hibernate 配置

    &lt;bean class="org.springframework.web.context.support.AnnotationConfigWebApplicationContext"&gt; &lt;property name="configLocation" value="com.yourpackage.config"&gt;&lt;/property&gt; ``` 3. **Hibernate 配置** ...

    spring2.5 -3.0 hibernate3.3 jar包说明

    5. **spring-dao.jar** 提供了异常层次结构,它使开发者能够以一致的方式处理不同的数据访问技术引发的数据访问异常。 6. **spring-hibernate.jar** 该Jar包提供了Spring与Hibernate之间的整合支持,简化了...

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

    9) spring -hibernate.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-jdbc.jar,spring-orm.jar,spring-web.jar,spring-webmvc.jar 10) spring-orm.jar需spring-core.jar,...

    WebWork+Spring+Hibernate整合开发网络书城 第二讲

    在本课程中,我们将深入探讨如何使用WebWork、Spring和Hibernate三大开源框架进行整合开发,构建一个完整的网络书城系统。这三大框架分别是用于MVC(Model-View-Controller)架构的WebWork,用于依赖注入和面向切面...

    struts+spring+hibernate通用分页方法

    ### Struts+Spring+Hibernate通用分页方法详解 #### 一、引言 在Web应用开发中,分页是一项常用且重要的功能。特别是在处理大量数据时,合理的分页策略能够显著提升用户体验并减轻服务器压力。Struts+Spring+...

    spring jar 包详解

    spring-support.jar - **功能简介**:包含了支持缓存 Cache(ehcache)、JCA、JMX、邮件服务(Java Mail、COS Mail)、任务计划 Scheduling(Timer、Quartz)等方面的类。 - **应用场景**:适用于需要使用这些高级...

    最新最全的spring开发包

    这个jar文件包含Spring对DAO特性集进行了扩展,使其支持 iBATIS、JDO、OJB、TopLink,因为Hibernate已经独立成包了,现在不包含在这个包里了。这个jar文件里大部分的类都要依赖 spring-dao.jar里的类,用这个包时你...

    Struts+Spring+Hibernate实现上传下载

    映射文件中,该字段的 type 设置为 `org.springframework.orm.hibernate3.support.BlobByteArrayType`,这是 Spring 提供的自定义类型,便于处理 Blob。 3. **Spring 的 OracleLobHandler**:在 Spring 中,使用 `...

    Struts2+Spring+Hibernate搭建全解

    &lt;filter-class&gt;org.springframework.orm.hibernate3.support.OpenSessionInViewFilter &lt;filter-name&gt;openSessionInViewFilter &lt;url-pattern&gt;/* ``` 5. **运行测试** - **部署项目**:将项目部署到...

    ssh(structs,spring,hibernate)框架中的上传下载

    数据表Blob字段在Hibernate持久化映射文件中的type为org.springframework.orm.hibernate3.support.BlobByteArrayType,即Spring所提供的用户自定义的类型,而非java.sql.Blob。 3在Spring中使用org.springframework...

    Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发

    import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class UserDaoImpl extends HibernateDaoSupport implements UserDao { public UserDaoImpl() { super(); } public List...

    spring jar资源包

    spring jar资源包,包括:spring-aop.jar,spring-beans.jar,spring-context.jar,spring-core.jar,spring-dao-2.0-m1.jar,spring-hibernate.jar,spring-jdbc.jar,spring-mock.jar,spring-orm.jar,spring-...

Global site tag (gtag.js) - Google Analytics