Hibernate 和 spring 整合使用
在hibernate和spring时总结的一些知识,以供将来查询和使用。
spring针对hibernate的整合做了许多的努力,当我们使用spring时,对hibernate的使用变得更加简单。
hibernate通过sessionFactory创建session,spring对hibernate进行了无缝的整合,无需自己写代码实现通过Configuration.buildSessionFactory()来创建一个SessionFactory.较为流行的做法是在applicationContext中注册工厂bean为一个单例,然后程序通过依赖注入的方式引用SessionFactory的实现.配置SessionFactory也有多种方式实现。
一、dataSource方式
配置文件:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://127.0.0.1:3306/test</value> </property> <property name="userName"> <value>root</value> </property> <property name="password"> <value>root</value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <value>dataSource</value> </property> <property name="mappingResources"> <list> <value>com/test/entity/test.hbm.xml</value> </list> </property> </bean>
二、使用原系统的hibernate的配置文件
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"> <value>classPath:cn/com/hibernate.cfg.xml</value> </property> </bean>
如果我们系统十分庞大的时候,实体的配置文件会逐渐增多,如果继续往配置文件里增加映射文件会使得配置文件十分庞大。这个时候使用mappingDirectoryLocations来配置程序中的一个路径,spring会加载此路径下所有的hbm文件
配置文件
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="mappingDirectoryLocations"> <value>classPath:cn/com/entity</value> </property> </bean>
在整个java世界中实现相同的功能,有各种各样的实现方式,但是我们需要根据我们当时所处的环境,综合考虑各种实现的利弊,选择在当前环境下,较为合适的一种