1. 程式人生 > >spring與hibernate整合之sessionfactory的三種方式

spring與hibernate整合之sessionfactory的三種方式

方式1:只加載SessionFactory
 

<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

      <propertyname="configLocation" value="classpath:hibernate.cfg.xml"></property>

</bean>


方式2:載入資料庫連線池

 

<bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

    <propertyname="dataSource" ref="dataSource"></property>

    <propertyname="configLocation"value="classpath:hibernate.cfg.xml"></property>
</bean>


方式3:載入所有屬性(連線池以及配置對映資源全交給spring建立)

 

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

       <!-- a. 注入連線池 -->
       <property name="dataSource" ref="dataSource"></property>
       <!-- b. hibernate常用配置:方言、自動建表、顯示sql -->
       <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>   

       <!-- c. 載入所有的對映(根據路徑載入)
       <propertyname="mappingLocations">
           <list>
               <value>classpath:cn/itcast/entity/*.hbm.xml</value>
           </list>
       </property>
       -->
       <!-- c. 根據目錄載入所有的對映 -->
       <property name="mappingDirectoryLocations">
           <list>
               <value>classpath:cn/itcast/entity</value>
           </list>
       </property>
    </bean>


========================================hibernate配置資料庫連線池======================

   

<session-factory>
        <!-- 一、 資料庫連線的引數配置 -->
        <property name="hibernate.connection.url">jdbc:mysql:///hib_demo</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    
        <!-- 二、 hibernate其他常用配置 -->
        <property name="hibernate.show_sql">true</property>
        <!--<property name="hibernate.format_sql">true</property>-->
        <property name="hibernate.hbm2ddl.auto">update</property>
        
        <!--
            hibernate對連線池的支援
         -->
         <!-- C3p0連線池支援類 -->
         <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
         <!-- 最大連線數 -->
         <property name="hibernate.c3p0.max_size">6</property>
         <!-- 最小連線數 -->
         <property name="hibernate.c3p0.min_size">4</property>
         <!-- 當連線不夠用時候每次的增量 -->
         <property name="hibernate.c3p0.acquire_increment">2</property>
         <!-- 最多執行的命令的個數 -->
         <property name="hibernate.c3p0.max_statements">100</property>
         <!-- 連線空閒測試時間 -->
         <property name="hibernate.c3p0.idle_test_period">3000</property>
  
         <!-- 配置session的建立方式,執行緒方式建立session -->
         <property name="hibernate.current_session_context_class">thread</property>
   </session-factory>