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(); } }
相关推荐
在`applicationContext.xml`中配置Hibernate的DAO层,使用Spring的`HibernateTemplate`或`HibernateDaoSupport`。例如: ```xml <bean id="userDao" class="com.example.dao.UserDaoImpl"> ``` 在DAO实现类中注入...
Spring的Hibernate支持模块(Spring Hibernate Support)使得整合两者变得非常简单,它提供了SessionFactory的管理,事务的协调,以及在服务层自动关闭Session的功能,减少了手动管理数据库连接的麻烦。Spring的DAO...
<bean class="org.springframework.orm.hibernate5.support.OpenSessionInViewInterceptor"> ``` 在实际应用中,我们还需要编写相应的DAO(数据访问对象)和Service层来处理业务逻辑,同时使用注解或XML...
8. **spring-support.jar**:提供 UI 模板、邮件、脚本、缓存和任务调度等服务,依赖 spring-context,以及其他如 Velocity、FreeMarker、JasperReports、BSH、Groovy、JRuby、Quartz 和 EHCache。 9. **spring-web...
因此,在实现 DAO 接口的同时,DAO 实现类需要继承自 Spring 的 org.springframework.orm.hibernate3.support.HibernateDaoSupport。 5. 配置 Spring,让 Spring 管理 Hibernate 配置数据源,以便让 Spring 统一...
其中一个重要的文件是`HibernateDao.java`,该文件提供了一组通用的数据库操作方法,如下所示: ```java package com.core.hibernate; import java.io.Serializable; import java.util.List; import org....
<bean class="org.springframework.web.context.support.AnnotationConfigWebApplicationContext"> <property name="configLocation" value="com.yourpackage.config"></property> ``` 3. **Hibernate 配置** ...
5. **spring-dao.jar** 提供了异常层次结构,它使开发者能够以一致的方式处理不同的数据访问技术引发的数据访问异常。 6. **spring-hibernate.jar** 该Jar包提供了Spring与Hibernate之间的整合支持,简化了...
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三大开源框架进行整合开发,构建一个完整的网络书城系统。这三大框架分别是用于MVC(Model-View-Controller)架构的WebWork,用于依赖注入和面向切面...
### Struts+Spring+Hibernate通用分页方法详解 #### 一、引言 在Web应用开发中,分页是一项常用且重要的功能。特别是在处理大量数据时,合理的分页策略能够显著提升用户体验并减轻服务器压力。Struts+Spring+...
spring-support.jar - **功能简介**:包含了支持缓存 Cache(ehcache)、JCA、JMX、邮件服务(Java Mail、COS Mail)、任务计划 Scheduling(Timer、Quartz)等方面的类。 - **应用场景**:适用于需要使用这些高级...
这个jar文件包含Spring对DAO特性集进行了扩展,使其支持 iBATIS、JDO、OJB、TopLink,因为Hibernate已经独立成包了,现在不包含在这个包里了。这个jar文件里大部分的类都要依赖 spring-dao.jar里的类,用这个包时你...
映射文件中,该字段的 type 设置为 `org.springframework.orm.hibernate3.support.BlobByteArrayType`,这是 Spring 提供的自定义类型,便于处理 Blob。 3. **Spring 的 OracleLobHandler**:在 Spring 中,使用 `...
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter <filter-name>openSessionInViewFilter <url-pattern>/* ``` 5. **运行测试** - **部署项目**:将项目部署到...
数据表Blob字段在Hibernate持久化映射文件中的type为org.springframework.orm.hibernate3.support.BlobByteArrayType,即Spring所提供的用户自定义的类型,而非java.sql.Blob。 3在Spring中使用org.springframework...
import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class UserDaoImpl extends HibernateDaoSupport implements UserDao { public UserDaoImpl() { super(); } public List...
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-...