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.connection.driver_class ...hibernate.connection.url jdbc:mysql:///test hibernate.connection.username username hibernate.connection.password password
在Java开发领域中,Hibernate作为一个强大的对象关系映射(ORM)框架,极大地简化了数据库操作过程。其中,`HibernateTemplate`作为该框架提供的一个实用工具类,封装了一系列常用的数据库操作方法,使得开发者能够...
### myEclipse 使用 Hibernate 图解知识点详解 #### 一、集成 Hibernate 类库到 MyEclipse 项目 在 MyEclipse 中使用 Hibernate 开发时,首先需要将 Hibernate 的类库加入到项目中。具体步骤如下: 1. **添加 ...
在Hibernate中,我们通常使用HQL(Hibernate Query Language)或Criteria API进行查询,但这些方式并不支持复杂的动态查询。为了实现动态SQL,我们可以借助于Hibernate的QBC(Query By Criteria)和Criteria API,...
### Hibernate使用技巧详解 #### 一、两种配置文件选择及使用场景 - **A. `hibernate.cfg.xml`** - **特点**: 包含数据库连接信息、可用的映射文件等配置。 - **示例**: `Configuration config = new ...
- **template**: 这可能是预设的模板文件,如Hibernate配置文件模板或实体类模板,用于快速生成项目结构。 5. **使用建议**: - 使用版本管理工具,如Git,对项目进行版本控制,便于团队协作和代码回溯。 - 遵循...
3. **Hibernate Template或JPA**:Spring提供了HibernateTemplate,这是一个简化Hibernate操作的工具类。然而,随着Spring Data JPA的出现,现在更多地推荐使用JPA,它提供了一种基于标准的、与ORM供应商无关的方式...
Spring MVC 和 Hibernate 是两个在Java Web开发中广泛使用的框架,它们分别处理模型-视图-控制器(MVC)架构中的不同部分以及数据持久化。Spring MVC 提供了强大的请求处理和视图管理功能,而 Hibernate 则是 ORM...
-- Hibernate Template --> <bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate"> <!-- AOP事务管理 --> <tx:annotation-driven transaction-manager=...
2. **模板语言**: Hibernate Tools 使用 Velocity 模板语言(Velocity Template Language, VTL)来定义模板。VTL 是一个轻量级的模板引擎,允许开发者用简单的语法来控制代码生成逻辑。 3. **自定义模板步骤**: -...
8. **JSP页面**:使用JSTL或EL表达式展示数据,结合JQuery进行前端交互,例如复选框删除功能,可以通过AJAX发送异步请求,调用Action中的删除方法。 在描述中提到了复选框删除的实例,这通常涉及到前端和后端的配合...
6.9 Template/Callback 简化业务方法 6.10 版面:一棵自身循环的树 6.11 版面与帖子:Master/Detail 主从关系 6.12 帖子树及其分页 6.13 与Web层交互 6.14 帖子的多形扩展:投票 6.15 移植到Hibernate 3 6.16 ...
为了在Eclipse这样的集成开发环境中使用Hibernate,我们需要进行一系列的配置步骤,包括导入必要的jar包。本篇文章将详细讲解如何在Eclipse中配置Hibernate环境并导入所需的jar包。 首先,我们来看看`lib.zip`文件...
<property name="hibernate.connection.url">jdbc:postgresql:template1 <property name="hibernate.connection.username">pg <property name="hibernate.connection.password"> ``` PostgreSQL是一个强大的开源...
- Driver Template:选择Oracle Thin Driver,如果使用的是Oracle数据库。 - Drivername:输入数据库驱动名称,例如OracleConnection。 - Connection URL:输入数据库连接字符串,如jdbc:oracle:thin:@localhost:...
4. **数据访问层**:在Spring中定义数据访问接口,使用Hibernate的Template或者JPA的Repository来实现这些接口。这样,业务层可以依赖这些接口,而不是直接依赖Hibernate,实现了数据访问层的解耦。 5. **业务逻辑...
4. **渲染模板**:使用Velocity引擎的`mergeTemplate()`方法,将上下文与模板文件合并,生成最终的HTML或其他格式的输出。 例如,一个简单的例子可能如下所示: ```java // 创建Session Session session = ...
Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发者使用 Java 对象来操作数据库,而无需直接编写 SQL 查询。对于初学者来说,学习 Hibernate 可以简化数据库操作,提高开发效率。以下是对 Hibernate 学习...
4. **整合Struts2和Spring**:使用Spring插件或`struts-plugin.xml`来实现Action的Spring Bean注入,使得Struts2可以从Spring容器中获取Action实例。 5. **整合Spring和Hibernate**:在Spring配置文件中定义...