`

hibernate:使用hibernate 的template接口

    博客分类:
  • SSH
 
阅读更多

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是完

分享到:
评论

相关推荐

    hibernate.properties.template

    所有数据库连接驱动配置模板 hibernate.connection.driver_class ...hibernate.connection.url jdbc:mysql:///test hibernate.connection.username username hibernate.connection.password password

    Hibernate的Template方法以及SQL简介

    在Java开发领域中,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作过程。其中,`HibernateTemplate`作为该框架提供的一个实用工具类,封装了一系列常用的数据库操作方法,使得开发者能够...

    myEclipse使用hibernate图解

    ### myEclipse 使用 Hibernate 图解知识点详解 #### 一、集成 Hibernate 类库到 MyEclipse 项目 在 MyEclipse 中使用 Hibernate 开发时,首先需要将 Hibernate 的类库加入到项目中。具体步骤如下: 1. **添加 ...

    hibernate实现动态SQL查询

    在Hibernate中,我们通常使用HQL(Hibernate Query Language)或Criteria API进行查询,但这些方式并不支持复杂的动态查询。为了实现动态SQL,我们可以借助于Hibernate的QBC(Query By Criteria)和Criteria API,...

    Hibernate使用技巧汇总

    ### Hibernate使用技巧详解 #### 一、两种配置文件选择及使用场景 - **A. `hibernate.cfg.xml`** - **特点**: 包含数据库连接信息、可用的映射文件等配置。 - **示例**: `Configuration config = new ...

    myeclipse+hibernate项目配置包

    - **template**: 这可能是预设的模板文件,如Hibernate配置文件模板或实体类模板,用于快速生成项目结构。 5. **使用建议**: - 使用版本管理工具,如Git,对项目进行版本控制,便于团队协作和代码回溯。 - 遵循...

    spring_hibernate整合实例

    3. **Hibernate Template或JPA**:Spring提供了HibernateTemplate,这是一个简化Hibernate操作的工具类。然而,随着Spring Data JPA的出现,现在更多地推荐使用JPA,它提供了一种基于标准的、与ORM供应商无关的方式...

    springMVC+hibernate3整合

    Spring MVC 和 Hibernate 是两个在Java Web开发中广泛使用的框架,它们分别处理模型-视图-控制器(MVC)架构中的不同部分以及数据持久化。Spring MVC 提供了强大的请求处理和视图管理功能,而 Hibernate 则是 ORM...

    Spring/泛型Hibernate的实现

    -- Hibernate Template --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate"> <!-- AOP事务管理 --> <tx:annotation-driven transaction-manager=...

    自定义 Hibernate Tools 的模板

    2. **模板语言**: Hibernate Tools 使用 Velocity 模板语言(Velocity Template Language, VTL)来定义模板。VTL 是一个轻量级的模板引擎,允许开发者用简单的语法来控制代码生成逻辑。 3. **自定义模板步骤**: -...

    struts2与hibernate的整合实现数据的crud

    8. **JSP页面**:使用JSTL或EL表达式展示数据,结合JQuery进行前端交互,例如复选框删除功能,可以通过AJAX发送异步请求,调用Action中的删除方法。 在描述中提到了复选框删除的实例,这通常涉及到前端和后端的配合...

    深入浅出Hibernate中文版 part1

    6.9 Template/Callback 简化业务方法 6.10 版面:一棵自身循环的树 6.11 版面与帖子:Master/Detail 主从关系 6.12 帖子树及其分页 6.13 与Web层交互 6.14 帖子的多形扩展:投票 6.15 移植到Hibernate 3 6.16 ...

    配置Hibernate导入的jar包

    为了在Eclipse这样的集成开发环境中使用Hibernate,我们需要进行一系列的配置步骤,包括导入必要的jar包。本篇文章将详细讲解如何在Eclipse中配置Hibernate环境并导入所需的jar包。 首先,我们来看看`lib.zip`文件...

    hibernate连接各种数据库的方法

    <property name="hibernate.connection.url">jdbc:postgresql:template1 <property name="hibernate.connection.username">pg <property name="hibernate.connection.password"> ``` PostgreSQL是一个强大的开源...

    JSF+Spring+Hibernate(框架整合)详细过程

    4. **数据访问层**:在Spring中定义数据访问接口,使用Hibernate的Template或者JPA的Repository来实现这些接口。这样,业务层可以依赖这些接口,而不是直接依赖Hibernate,实现了数据访问层的解耦。 5. **业务逻辑...

    Hibernate HQL 结合 velocity

    4. **渲染模板**:使用Velocity引擎的`mergeTemplate()`方法,将上下文与模板文件合并,生成最终的HTML或其他格式的输出。 例如,一个简单的例子可能如下所示: ```java // 创建Session Session session = ...

    hibernate学习心得

    Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库,而无需直接编写 SQL 查询。对于初学者来说,学习 Hibernate 可以简化数据库操作,提高开发效率。以下是对 Hibernate 学习...

    strut2与spring4与hibernate4整合

    4. **整合Struts2和Spring**:使用Spring插件或`struts-plugin.xml`来实现Action的Spring Bean注入,使得Struts2可以从Spring容器中获取Action实例。 5. **整合Spring和Hibernate**:在Spring配置文件中定义...

Global site tag (gtag.js) - Google Analytics