`

hibernate基础-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的访问方式。
分享到:
评论

相关推荐

    hibernate-jar基本Jar包

    总结,Hibernate-jar是Hibernate框架的基础,它包含了所有必要的库和API,使开发者能方便地在Java项目中使用Hibernate。理解并熟练运用Hibernate的核心概念和功能,可以极大地提高开发效率,降低数据库操作的复杂性...

    Spring_Spring_Hibernate_HibernateTemplate

    《Spring与Hibernate整合:深入理解HibernateTemplate》 在Java企业级开发中,Spring框架和Hibernate持久层框架的结合使用是常见的技术选型。本篇将深入探讨Spring与Hibernate的集成,特别是Spring提供的...

    学生班级的struts2-hibernate-spring

    Struts2-Hibernate-Spring是Java Web开发中的一个经典组合,它们共同构成了MVC(Model-View-Controller)架构模式的基础。这个项目很可能是用来管理学生班级信息的一个应用,通过Struts2处理用户请求,Hibernate进行...

    spring-hibernate-jotm 例子

    在Spring和Hibernate的集成中,Spring可以通过HibernateTemplate或SessionFactoryBean等组件来管理Hibernate的会话和事务,使得事务控制更加灵活和高效。 JOTM是Java事务API(JTA)的一个开源实现,用于管理跨多个...

    spring3.0+hibernate3.3+mysql8.0

    在Spring框架中,我们可以利用Spring的HibernateTemplate或SessionFactoryBean来配置和管理Hibernate,以实现数据持久化。 **MySQL 8.0** 是一个开源的关系型数据库管理系统,以其高性能、稳定性及易用性而闻名。...

    spring4.0整合hibernate5.1.0.Final+mysql5

    - **编写DAO层**:使用Spring的HibernateTemplate或JdbcTemplate来操作数据库,实现增删查改的方法。 - **事务管理**:配置Spring的声明式事务管理,确保数据库操作的原子性和一致性。 5. **测试**: 创建JUnit...

    HibernateTemplate详细描述以及使用范围

    在Spring框架中,`HibernateTemplate`作为ORM(Object Relational Mapping)技术中的一个重要组件,它提供了简化Hibernate操作的方法集,使得开发人员能够更加便捷地进行数据库操作。通过使用`HibernateTemplate`,...

    Spring整合Hibernate

    首先,Spring整合Hibernate的基础是Spring的Data Access/Integration模块,它提供了对各种持久层技术的支持,包括Hibernate。整合的关键在于配置和数据源管理。在Spring的XML配置文件中,我们需要定义Hibernate的...

    开发Spring+Struts+Hibernate应用

    ### Spring+Struts+Hibernate应用...以上知识点涵盖了Spring+Struts+Hibernate应用开发的各个方面,从基础的数据库操作和框架集成,到深入的整合策略和异常处理,为开发者提供了一整套开发SSH应用的理论和实践指南。

    第24次课-1 Spring与Hibernate的整合

    如果Spring与Hibernate进行了整合,则Hibernate便处于被Spring管理的状态下,Hibernate所需的基础资源,都由Spring以注入的方式提供。 由Spring接管的内容包括: Hibernate创建SessionFactory时需要的DataSource ...

    hibernateTemplate

    `HibernateTemplate`是Spring框架提供的一个工具类,用于简化Hibernate的使用。它封装了许多常见的数据库操作,如增删改查等,同时支持分页查询以及命名查询等功能。使用`HibernateTemplate`可以减少大量模板代码的...

    HibernateTemplate源代码

    - **getSessionFactory**:此方法返回当前使用的`SessionFactory`实例,这是`HibernateTemplate`进行数据访问操作的基础。 - **configureSession**:此方法允许对Hibernate会话进行额外的配置,如设置flush模式等。...

    第25,26讲 --搭建和配置Spring与Hibernate整合的环境

    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate"> ``` 然后,在你的业务逻辑类中,通过依赖注入获取HibernateTemplate,并进行数据库操作。 **步骤5:配置Web应用...

    spring 与hibernate的集成

    接下来,我们会在`applicationContext.xml`中配置数据源,这是Spring与Hibernate集成的基础。数据源(`dataSource`)通常使用Apache Commons DBCP库,因为它提供了连接池功能,能有效管理数据库连接,提高性能。配置...

    Spring整合Hibernate案例

    - **创建DAO接口和实现**:设计DAO接口,然后用Hibernate的Session作为基础实现数据操作方法。 - **使用HibernateTemplate**:Spring提供了一个`HibernateTemplate`类,简化了对Session的操作,可以减少代码量和...

    spring-udemy-hibernate-tutorial

    Spring的HibernateTemplate或JpaTemplate类为操作Hibernate提供了简单且线程安全的接口。此外,Spring还支持使用SessionFactoryBean配置Hibernate,使得事务管理变得更加便捷。 四、Spring MVC与Hibernate的Web开发...

    idea创建hibernate框架过程视屏

    打开IDEA,选择"New Project",然后在左侧列表中选择"Maven",勾选"Create from archetype",并搜索"Hibernate"相关的archetype,如"hibernate-quickstart-archetype",这将生成一个基础的Hibernate项目结构。...

    struts2.1.8 集成 spring hibernate需要的 核心 jar

    5. **使用Spring管理Hibernate Session**:通过Spring的HibernateTemplate或JPA的EntityManager进行数据库操作。 这样的集成使得开发人员可以利用Spring的IoC(Inversion of Control)和AOP能力,以及Hibernate对...

    整合Spring + hibernate所需的jar包

    总之,这个压缩包提供了整合Spring和Hibernate所需要的基础库,帮助开发者快速搭建能够处理复杂业务逻辑和数据库交互的企业级应用。正确理解和使用这些jar包,能够极大地提高开发效率和代码质量。

    基于HIbernateTemplate的代码自动生成

    `HibernateTemplate`是Spring框架对Hibernate ORM(对象关系映射)的一种封装,它简化了与数据库交互的复杂性,而"基于HibernateTemplate的代码自动生成"正是为了进一步提升开发效率而设计的一种技术手段。...

Global site tag (gtag.js) - Google Analytics