spring與hibernate整合之sessionfactory的三種方式
阿新 • • 發佈:2018-12-31
方式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>