Spring整合Hibernate的時候使用hibernate.cfg.xml


Spring整合Hibernate其實也就是把Hibernate的SessionFactory對象封裝成: org.springframework.orm.hibernate3.LocalSessionFactoryBean
在由自己來保管和控制。
在配置LocalSessionFactoryBean的時候,如果要用到hibernate.cfg.xml配置文件,那么就要配置:
configLocations屬性,這個屬性就是叫Spring在配置LocalSessionFactoryBean的時候去configLocations調用該配置。
   
   
   
           
  1. <bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  2. <!-- 使用hibernate.cfg.xml配置文件 -->
  3. <property name="configLocations">
  4. <value>classpath:hibernate.cfg.xml</value>
  5. </property>
  6. ....
  7. </bean>
如果,沒有配置這個屬性的話,hibernate.cfg.xml配置文件會被忽略的。也就是沒有效果。


因為Spring的applicationContext.xml文件可以直接配置hibernate.cfg.xml中的所有內容,所以可以不需要配置hibernate.cfg.xml。
比如說:
  • 在hibernate.cfg.xml中配置數據庫的其它配置
   
   
   
           
  1. <!-- 設置數據庫方言 -->
  2. <property name="connection.dialect">
  3. org.hibernate.dialect.MySQLDialect
  4. </property>
  5. <property name="show_sql">true</property>
  6. <property name="hbm2ddl.auto">update</property>
  • 在Spring的applicationContext.xml文件中配置數據庫的其它配置
   
   
   
           
  1. <!-- 相當於hibernate.cfg.xml配置的信息 -->
  2. <property name="hibernateProperties">
  3. <props>
  4. <prop key="hibernate.dialect" >org.hibernate.dialect.MySQLDialect</prop>
  5. <prop key="hibernate.show_sql">true</prop>
  6. <prop key="hibernate.hbm2ddl.auto">update</prop>
  7. </props>
  8. </property>
########### ########### ########### ########### ########### ########### ###########
  • 在hibernate.cfg.xml中配置數據庫連接池
   
   
   
           
  1. <!-- 設置數據庫驅動 -->
  2. <property name="connection.driver_class">com.mysql.jdbc.driver</property>
  3. <!-- 設置數據庫鏈接地址 -->
  4. <property name="connection.url">jdbc:mysql://localhost:3306/oa</property>
  5. <!-- 設置數據庫賬戶 -->
  6. <property name="connection.username">root</property>
  7. <!-- 設置數據庫密碼 -->
  8. <property name="connection.password"></property>
  9. ......
  • 在Spring的applicationContext.xml文件中配置數據庫連接池
     
     
     
             
  1. <!-- 配置數據鏈接池 -->
  2. <property name="dataSource">
  3. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  4. <!-- 從jdbc.properties配置文件中獲取值 -->
  5. <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/oa"></property>
  6. <!-- 從jdbc.properties配置文件中獲取值 -->
  7. <property name="driverClass" value="com.mysql.jdbc.driver"></property>
  8. <!-- 從jdbc.properties配置文件中獲取值 -->
  9. <property name="user" value="root"></property>
  10. <!-- 從jdbc.properties配置文件中獲取值 -->
  11. <property name="password" value=""></property>
  12. <!-- 其它配置 -->
  13. <!-- 初始化時獲取三個連接,取值應在minPoolSize與maxPoolSize之間。Default:3 -->
  14. <property name="initialPoolSize" value="3"></property>
  15. .....
  16. </property>

  • 在hibernate.cfg.xml中配置實體對象的映射文件
    
    
    
            
  1. 在hibernate.cfg.xml中配置實體對象的映射文件:
  2. <mapping resource="cn/czk/oa/domain/Department.hbm.xml" />
  3. <mapping resource="cn/czk/oa/domain/Privilege.hbm.xml" />
  4. <mapping resource="cn/czk/oa/domain/Role.hbm.xml" />
  5. <mapping resource="cn/czk/oa/domain/User.hbm.xml" />
  • 在Spring的applicationContext.xml中配置實體對象的映射文件
      
      
      
              
  1. <bean name="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  2. .....
  3. <!-- 配置映射文件 -->
  4. <property name="mappingResources">
  5. <list>
  6. <value>cn/czk/oa/domain/User.hbm.xml</value>
  7. <value>cn/czk/oa/domain/Department.hbm.xml</value>
  8. <value>cn/czk/oa/domain/Role.hbm.xml</value>
  9. <value>cn/czk/oa/domain/Privilege.hbm.xml</value>
  10. </list>
  11. </property>
  12. .....
  13. </bean>







免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM