HibernateTemplate的
常规
用法
1
,void delete
( Object entity ) : 删除指定持久化实例
public void removePerson( int
personid)
{
//先加载特定的实例
Object p = getHibernateTemplate().load(
Person.class , new Integer( personid));
//删除特定实例
getHibernateTemplate().delete
(p);
}
2
,deleteAll
( Collection entities ) :
删除集合内全部持久化类实例
3
,find
( String queryString ) :
根据HQL查询字符串来返回实例集合
Public List getPersons()
{
//返回Person的全部实例
return
getHibernateTemplate().find
( " from
Person " );
}
4
,findByNamedQuery
( String queryName) :
根据命名查询返回实例集合
5
,get
( Class entityClass , Serializable id ) :
根据主键加载特定持久化类的实例
public Person getPerson()
{
//返回特定主键对应的Person实例
return (Person)getHibernateTemplate().get
(Person.class , new Integer(person
id));
}
6
,save
( Object entity ) : 保存新的实例
7
,saveOrUpdate
( Object entity ): 根据实例状态,选择保存或者更新
8
,update
( Object entity ) : 更新实例的状态,要求entity是持久状态
9
,setMaxResults
( int maxResults ) : 设置分页的大小。
HibernateTemplate的
更灵活
的用法
:
更灵活的访问是通过以下两个方法完成的:
Object
execute ( HibernateCallback
action )
;
List execute ( HibernateCallback
action
);
这两个方法都需要一个HibernateCallback的实例,可以在任何有效的hibernate数据访问中使用。用法灵活,解决了Spring封装Hibernate后灵活性不足的缺陷。
HibernateCallback
是一个接,该接口只有一个方doInHibernate
( org.hibernate.Session session ),
该方法只有一个参数Session.
具体代码如下:
public class PersonDaolmpl implements
PersonDao
{
// 私有实例变量保存SessionFactory
private SessionFactory
sessionFactory;
// 依赖注入必需的setter 方法
public void
setSessionFactory(SessionFactory sessionFactory)
{
this.sessionFactory =
sessionFactory;
}
/**
*通过人名查找所有匹配该名的Person 实例
* @param name
匹配的人名
* @return 匹配该任命的全部Person 集合
*/
public List
findPersonsByName(final String
name)
//创建HibernateTemplate实例
HibernateTemplate hibernateTemplate = new
HibernateTemplate(this.sessionFactory);
//返回HibernateTemplate的execute
的结果
return (List) hibernateTemplate.execute
(
//创建匿名内部类
new
HibernateCallback
()
public Object
doInHibernate
(Session session)
throws
Hibernate Exception
{
//使用条件查询的方法返回
List result =
session.createCriteria(Person.class)
.add(Restrictions.like("name", name+ "
%") .list ( ) ;
return result;
} )
:
}
}
注意:在方法doInHibernate内可以访问到Session,该session是完全绑定到当前线程的Session实例,保证在对于复杂的持久层访问时,依然可以使用Hibernate的访问方式。
分享到:
相关推荐
总结,Spring与Hibernate的整合是企业级开发中的重要技能,掌握HibernateTemplate的使用能够提高开发效率,减少错误。然而,随着技术的进步,开发者也应关注更现代的解决方案,如Spring Data JPA,以适应不断变化的...
在这个主题下,我们将深入探讨Spring框架的核心特性,以及如何与Hibernate进行集成,特别是使用HibernateTemplate作为数据访问对象(DAO)层的工具。 **Spring框架** Spring是Java平台上广泛使用的开源框架,起源于...
Spring 可以通过工厂方法或 JdbcTemplate、HibernateTemplate 提供的模板方法来获取 Session。 6. **Service 层设计**:Service 层是业务逻辑的核心,通常会注入 DAO 实例并调用其方法来完成业务处理。Service 层...
标题"Spring整合Hibernate.jar"意味着我们将讨论如何将这两个强大的框架集成在一起,以便在Spring管理的环境中使用Hibernate进行数据库操作。这通常涉及到以下步骤和知识点: 1. **引入依赖**:首先,你需要在项目...
Spring整合Hibernate基于HibernateTemplate的方式,极大地简化了数据库操作,同时也让事务管理和代码的编写变得更加规范和高效。在实际项目中,可以根据需求进一步配置和优化,比如使用JPA的...
本文将深入探讨Spring整合Hibernate的相关知识点,适合初学者入门。 首先,我们需要理解Spring的核心理念。Spring框架提供了一个轻量级的容器,它能够管理应用程序中的对象,包括初始化、配置和依赖注入。AOP则是...
定义DataSource、SessionFactory和HibernateTemplate等Bean,其中DataSource用于存储数据库连接信息,SessionFactory则是Hibernate的主要入口点,而HibernateTemplate则为Spring提供了一组操作Hibernate的便捷方法。...
在本文中,我们将深入探讨如何将Spring框架与Hibernate ORM(对象关系映射)框架整合,以便在实际项目中实现高效、灵活的数据访问层。Spring以其强大的依赖注入和管理能力,结合Hibernate的数据库操作功能,可以构建...
**Spring3整合Hibernate4测试Demo** 在Java Web开发中,Spring和Hibernate是两个非常重要的框架。Spring是一个全面的后端应用程序框架,它提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)以及其他...
《Spring整合Hibernate实战指南》 在Java开发领域,Spring框架以其强大的依赖注入、AOP(面向切面编程)以及丰富的模块支持,成为了企业级应用开发的首选。而Hibernate作为持久层框架,以其对象关系映射(ORM)能力...
这篇名为"spring整合hibernate实例"的内容,显然是关于如何将这两个框架协同工作,构建一个高效、灵活的Java应用的教程。在整合过程中,我们将探讨以下几个关键知识点: 1. **Spring的ApplicationContext**: 这是...
4. **HibernateTemplate与HibernateDaoSupport**:Spring提供了HibernateTemplate和HibernateDaoSupport,它们为DAO层提供了便捷的操作方法,如save、update、delete、find等,同时处理了事务和异常。 5. **JPA集成...
然后,通过Spring的HibernateTemplate或SessionFactoryBean,将Hibernate集成到Spring中,以便在Controller中方便地进行数据库操作。 4. 创建实体类:定义与数据库表对应的Java类,使用Hibernate的注解(如@Entity...
Spring整合Hibernate主要涉及以下几点: 1. **SessionFactory的创建**:Spring管理SessionFactory,通常在ApplicationContext.xml中配置,通过`<bean id="sessionFactory" class="org.springframework.orm....
在 Spring 中使用 Hibernate 通常有两种方式:一是使用 HibernateTemplate 或 HibernateDaoSupport,另一种是直接使用 Hibernate 的原生 API。这里我们关注后者,通过 Spring 注入 SessionFactory 到 DAO 类中,然后...
4. **使用HibernateTemplate或JPA**:在DAO层,我们可以使用HibernateTemplate的方法进行CRUD操作,或者使用JPA的Repository接口定义查询。 5. **测试和运行**:编写单元测试以验证整合是否成功,然后运行应用,...
标题"spring整合hibernate与struts2所需jar包"表明我们需要关注的是如何将这三个框架整合在一起,并且提供了所需的一些基础组件。整合SSH可以让开发者利用Spring的管理能力,让Hibernate更易于使用,同时通过Struts2...
4. **DAO(数据访问对象)层**:Spring整合Hibernate后,我们可以在DAO层使用Spring的JdbcTemplate或HibernateTemplate。这些模板类可以帮助我们简化数据库操作,如查询、插入、更新和删除,同时自动处理事务。 5. ...
Spring整合Hibernate是现代Java开发中常见的一种技术组合,利用Spring框架的强大功能来管理和协调Hibernate的持久化操作。Spring为Hibernate提供了全面的集成方案,简化了DAO(Data Access Object)的开发,同时也...
Spring整合Hibernate可以利用`spring-orm.jar`,通过Spring的HibernateTemplate或JPA的EntityManagerFactory来透明地管理数据访问。 4. **SSH整合步骤**: - 配置Struts2:添加Struts2的相关jar包,创建`struts....