1.HibernateTemplate模板类
*装载单个实体的方法,在Spring内部,这些方法都会将具体操作委派给HibernateCallback接口的doInHibernate()回调反复,进而让Session与数据库进行交互。
Object get(...) throws DataAccessException;
Object load(....) throws DataAccessException;
Object loadAll(....) throws DataAccessException;
Object refresh(....) throws DataAccessException;
Object contains(....) throws DataAccessException;
....
*存储单个实体的辅助方法
void lock(....) throws DataAccessException;
Serializable save(....) throws DataAccessException;
void update(....) throws DataAccessException;
void saveOrUpdate(....) throws DataAccessException;
void persist(....) throws DataAccessException;
Object merge(....) throws DataAccessException;
void delete(....) throws DataAccessException;
void deleteAll(....) throws DataAccessException;
void flush(....) throws DataAccessException;
void clear(....) throws DataAccessException;
*此外还有基于HQL的查找方法和基于命名查询的查找方法
命名查询方法查找示例如下:
现在test/Query.hbm.xml定义了如下2个命名查询,其中一个还启用了命名参数
<query name="namedVisits">
<![CDATA[
from Visits as vi where vi.id=?
]]>
</query>
<query name="namedAndParamedVisits">
<![CDATA[
from Visits as vi where vi.id=:id
]]>
</query>
接下来再编码中引用
List list1 = this.getHibernateTemplate().findByNamedQuery("namedVisits",2);
List list2 = this.getHibernateTemplate().findByNamedQueryAndNamedParam("namedAndParamedVisits",new Stringp[]{"id"},new Object[]{2});
2.关于SessionFactory.getCurrentSession()方法的使用
注意几个细节:
* Session对象是当前活动事务所征集的Session
*DataAccessException异常体系适合于Spring提供的各种DAO层集成技术,比如JDBC,Hibernate,JPA等
@Repository是应用类的注解,其直接应用到DAO对象本身,比如HibernateClinic。
3. LocalSessionFactoryBean
LocalSessionFactoryBean集结了Hibernate SessionFactory相关的所有元数据信息。
如下配置:
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources">
<list>
<value>...../xxx.hbm.xml</value>
<value>...../xxx.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.use_sql_comments">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
4. 事务管理的支持
需在Spring配置文件中做如下配置
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager" p:sessionFactory-ref="sessionFactory"/>
5. 基于hibernate的Lob处理
*对Blob字段的操作可详见Spring的imagedb范例。
*Oracle数据库中,较大内容varchar2(4000)往往也很无奈。对此,我们往往采用大对象进行存储(clob),但是由于jdbc驱动对CLOB支持不好,因此使用hibernate进行操作时,往往非常麻烦。但是使用最新的oracle驱动,ojdbc14.jar
然后稍微更改Spring中,SessionFactory的属性参数:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="hibernate.connection.SetBigStringTryClob">true</prop>
</props>
</property>
<property name="mappingResources">
</property>
</bean>
然后将映射文件中更改成:
<property name="newsContent" type="text">
<column name="NEWS_CONTENT" />
</property>
在POJO类中,直接使用String类型,就可以自由访问了!
分享到:
相关推荐
此外,对JDBC、Hibernate、JPA等多种持久层技术的集成,使Spring成为了数据库操作的强大后盾。 除此之外,Spring 2.5还强化了测试支持,包括模拟对象(Mock Objects)和单元测试框架的集成,使得测试过程更加便捷。...
《MLDN_J2EE框架_笔记--精华---(包括jsp struts hibernate spring)》这份压缩包文件聚焦于Java企业级开发中的核心技术,涵盖了JSP、Struts、Hibernate和Spring四大框架,它们是构建现代J2EE应用的基础。以下是这些...
标题 "记录-笔记-用ANT构建-struts-spring-hibernate" 暗示了这篇笔记主要涉及使用Apache Ant工具来构建一个整合了Struts、Spring和Hibernate的Java Web项目。Struts是MVC(模型-视图-控制器)框架,Spring是全面的...
- **Integration with Spring**:与Spring的其他模块如Spring MVC无缝集成,提供事务管理等服务。 2. **Hibernate**:Hibernate是JPA的一个实现,它是一个对象关系映射(ORM)框架。Hibernate允许开发者用面向对象...
Spring 5.2.3.RELEASE是该框架的一个稳定版本,包含了对Java 8及更高版本的支持,并且优化了性能和易用性。 在"spring-framework-5.2.3.RELEASE.rar"压缩包中,你将找到以下几个关键部分: 1. **核心容器**:这是...
- **框架集成**:Spring 可以与众多其他框架无缝集成,如 MyBatis、Hibernate 等。 3. **Spring 的组成** Spring 框架由多个模块组成,包括核心容器(Core Container)、数据访问/集成(Data Access/Integration...
此外,Spring 还集成了 Hibernate,使得数据库操作更加便捷。 Hibernate 是一个 ORM 解决方案,它允许开发者使用 Java 对象来操作数据库,而无需编写大量的 SQL 语句。Hibernate 通过实体类(Entity)、持久化属性...
### Spring与Hibernate集成知识点详解 #### 一、Spring与Hibernate集成概述 在现代软件开发中,Spring框架以其强大的依赖注入(DI)和面向切面编程(AOP)能力成为Java领域最受欢迎的企业级应用开发框架之一。而...
2. ORM集成:Spring支持多种ORM框架,如Hibernate、MyBatis等,提供了统一的数据访问抽象层,使得更换持久化策略变得简单。 四、Spring事务管理 1. 编程式事务管理:通过PlatformTransactionManager接口进行事务...
在本篇“Spring Hibernate 事务管理学习笔记(二)”中,我们将深入探讨Spring框架与Hibernate集成时如何实现高效、安全的事务管理。这是一篇关于源码分析和技术工具使用的文章,适合对Java开发和数据库操作有基础...
6. **MyEclipse**: MyEclipse 是一个基于Eclipse的集成开发环境,专门用于Java和Web开发,包括对J2EE、Spring、Struts和Hibernate等框架的支持。在搭建环境中,MyEclipse 6.5.0 用于创建Web项目和管理服务器。 7. *...
在这个版本中,Spring 提供了对最新Java特性的支持,以及对其他流行技术的集成,如Spring Boot、Hibernate、JPA等。 首先,Spring Framework 的核心特性包括依赖注入(Dependency Injection,DI),这是其最著名的...
### Spring-data-jpa 学习笔记 #### 一、spring-data-jpa的简单介绍 Spring Data JPA 是 Spring Data 的一部分,它简化了基于 Java Persistence API (JPA) 的数据访问层开发工作。Spring Data 旨在减少数据访问层...
1. 轻量级:Spring 的核心容器非常小巧,不依赖于特定的服务器或者库,这使得它易于集成到现有的系统中。 2. 无植入:Spring 不强制使用特定的编程模型,可以自由地选择编程方式,比如基于接口或基于注解。 3. 框架...
SSH是Java开发中广泛使用的三大框架——Struts2、Hibernate和Spring的缩写。这三大框架结合使用,能够构建高效、灵活的企业级Web应用程序。现在,让我们深入探讨这些框架的知识点。 **Struts2笔记** Struts2是MVC...
8. **Spring Security**:这是一个强大的安全框架,提供了认证和授权功能,可以保护Web应用程序免受攻击。 9. **Spring Integration**:提供了异步处理、消息驱动和企业服务总线(ESB)等集成解决方案。 10. **...
Spring的IoC和AOP配置,以及与Hibernate的集成;Hibernate的实体类、映射文件和基本操作。此外,还会涉及如何设置项目结构、配置文件的编写,以及实际的CRUD操作示例。 在实际项目中,SSH组合提供了良好的分层架构...
这份"spring-note spring 读书笔记"深入探讨了Spring的核心概念以及如何与其他流行技术如JDBC、Hibernate、Struts和事务管理进行集成。 1. **Spring依赖注入(IOC)**: Spring的IOC容器是其核心,负责创建对象并...
【Spring+Hibernate笔记】这篇文档主要涵盖了在Web开发中使用Spring和Hibernate的基础知识。首先,我们从Spring的Hello World开始,了解如何配置JSP运行环境。 1.1. 配置JSP运行环境是开发Web应用的第一步。这包括...
**Spring Boot核心技术详解** Spring Boot是由Pivotal团队提供的全新框架,其设计目标是为了简化Spring应用的...希望这份学习笔记能帮助你深入理解和掌握Spring Boot的精髓,祝你在Spring Boot的学习之路上一帆风顺!