Spring整合Hibernate其實也就是把Hibernate的SessionFactory對象封裝成:
org.springframework.orm.hibernate3.LocalSessionFactoryBean
在由本身來保管和控制。
在配置LocalSessionFactoryBean的時候,若是要用到hibernate.cfg.xml配置文件,那麼就要配置:
configLocations屬性,這個屬性就是叫Spring在配置LocalSessionFactoryBean的時候去configLocations調用該配置。
<bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <!-- 使用hibernate.cfg.xml配置文件 --> <property name="configLocations"> <value>classpath:hibernate.cfg.xml</value> </property> ....</bean>
若是,沒有配置這個屬性的話,hibernate.cfg.xml配置文件會被忽略的。也就是沒有效果。
由於Spring的applicationContext.xml文件能夠直接配置hibernate.cfg.xml中的全部內容,因此能夠不須要配置hibernate.cfg.xml。
好比說:
- 在hibernate.cfg.xml中配置數據庫的其它配置:
<!-- 設置數據庫方言 --><property name="connection.dialect"> org.hibernate.dialect.MySQLDialect</property><property name="show_sql">true</property><property name="hbm2ddl.auto">update</property>
- 在Spring的applicationContext.xml文件中配置數據庫的其它配置:
<!-- 至關於hibernate.cfg.xml配置的信息 --><property name="hibernateProperties"> <props> <prop key="hibernate.dialect" >org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.hbm2ddl.auto">update</prop> </props></property>
###########
###########
###########
###########
###########
###########
###########
- 在hibernate.cfg.xml中配置數據庫鏈接池:
<!-- 設置數據庫驅動 --><property name="connection.driver_class">com.mysql.jdbc.driver</property><!-- 設置數據庫連接地址 --><property name="connection.url">jdbc:mysql://localhost:3306/oa</property><!-- 設置數據庫帳戶 --><property name="connection.username">root</property><!-- 設置數據庫密碼 --><property name="connection.password"></property>......
- 在Spring的applicationContext.xml文件中配置數據庫鏈接池:
<!-- 配置數據連接池 --><property name="dataSource"><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!-- 從jdbc.properties配置文件中獲取值 --> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/oa"></property> <!-- 從jdbc.properties配置文件中獲取值 --> <property name="driverClass" value="com.mysql.jdbc.driver"></property> <!-- 從jdbc.properties配置文件中獲取值 --> <property name="user" value="root"></property> <!-- 從jdbc.properties配置文件中獲取值 --> <property name="password" value=""></property> <!-- 其它配置 --> <!-- 初始化時獲取三個鏈接,取值應在minPoolSize與maxPoolSize之間。Default:3 --> <property name="initialPoolSize" value="3"></property> .....</property>
- 在hibernate.cfg.xml中配置實體對象的映射文件:
在hibernate.cfg.xml中配置實體對象的映射文件:<mapping resource="cn/czk/oa/domain/Department.hbm.xml" /><mapping resource="cn/czk/oa/domain/Privilege.hbm.xml" /><mapping resource="cn/czk/oa/domain/Role.hbm.xml" /><mapping resource="cn/czk/oa/domain/User.hbm.xml" />
- 在Spring的applicationContext.xml中配置實體對象的映射文件
<bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> ..... <!-- 配置映射文件 --> <property name="mappingResources"> <list> <value>cn/czk/oa/domain/User.hbm.xml</value> <value>cn/czk/oa/domain/Department.hbm.xml</value> <value>cn/czk/oa/domain/Role.hbm.xml</value> <value>cn/czk/oa/domain/Privilege.hbm.xml</value> </list> </property> .....</bean>