概述
Spring的ORM模块对Hibernate、iBatis、JDO等ORM框架提供支持。
ORM模块依赖于dom4j-1.6.jar和antlr.jar,需要自己添加两个类库。
本篇文章以结合Hibernate为例。
在Spring中Hibernate只是一个Bean
在Spring中,Hibernate的资源要交给Spring来管理。Hibernate和SessionFactory等只是Spring中的一个特殊的Bean,由Spring负责实例化与销毁。
这意味着我们不需要自己手动的去开启和关闭一个Session或Transaction,这些工作将由Spring自动帮我们完成。
协助我们的HibernateDaoSupport类
这是Spring为我们提供的一个方便我们进行一些DAO操作的类,我们只需要在自己的相应的Dao类中继承这个类就可以了。
常用的方法
getHibernateTemplate(),获取一个模板实例
这个实例为我们提供了一些常用的方法,比如:
persist(Object obj);用于保存一个对象
find(String HQL);用于查询
当然我们可以获取到一个session对象
getSession(),获取一个Session,调用Hibernate的API进行操作。
在Spring中配置Hibernate
在Hibernate中我们会有自己的配置文件,而在Spring中我们可以将Hibernate配置在Spring中。
配置实例
1. 配置Hibernate数据库连接属性文件
dataSource.password=admin
dataSource.username=root
dataSource.databaseName=db_test
dataSource.driverClassName=com.mysql.jdbc.Driver
dataSource.dialect=org.hibernate.dialect.MySQL5Dialect
dataSource.serverName=localhost:3306
#dataSource.url=jdbc:mysql://localhost:3306/sunsheen?useUnicode=true&characterEncoding=utf-8
dataSource.url=jdbc:mysql://localhost:3306/sunsheen?useUnicode=true&characterEncoding=utf-8
dataSource.properties=user=${dataSource.username};databaseName=${dataSource.databaseName};serverName=${dataSource.serverName};password=${dataSource.password}
dataSource.hbm2ddl.auto=update
2. 配置Spring的applicationContext.xml
<context:annotation-config />
<context:component-scan base-package="com.lidengju" /> <!-- 扫描包下的所有注解 -->
<context:property-placeholder location="classpath:/hibernate.properties" /> <!-- 读取属性配置文件 -->
<