SSH框架的項(xiàng)目在訪問(wèn)數(shù)據(jù)庫(kù)的時(shí)候,訪問(wèn)完成后一直占用鏈接,不釋放,導(dǎo)致過(guò)了一段時(shí)間后,服務(wù)器沒(méi)掛,就是有訪問(wèn)數(shù)據(jù)庫(kù)的連接是時(shí)候,一直卡住.
這里為您提供的是一個(gè)經(jīng)過(guò)優(yōu)化的SSH整合連數(shù)據(jù)庫(kù)實(shí)例,用于數(shù)據(jù)庫(kù)連接的SSH整合代碼。
ssh項(xiàng)目中,隨著項(xiàng)目的啟動(dòng)spring會(huì)建立數(shù)據(jù)庫(kù)連接池。
SSH整合連數(shù)據(jù)庫(kù)實(shí)例
1.配置spring對(duì)應(yīng)的hibernate文件:
<prop key="hibernate.connection.release_mode">after_statement</prop> 事務(wù)提交后自動(dòng)釋放連接
2配置事務(wù)
<!--spring 聲明式事務(wù)管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!--Spring事務(wù)攔截器 -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<!-- 以browse、list、load、get及is開(kāi)頭的所有方法采用只讀型事務(wù)控制類型 -->
<prop key="browse*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
<!-- 所有方法均進(jìn)行事務(wù)控制,如果當(dāng)前沒(méi)有事務(wù),則新建一個(gè)事務(wù) -->
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 自動(dòng)代理類 -->
<bean
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>*Impl</value>
</list>
</property>
<!-- 這個(gè)屬性為true時(shí),表示被代理的是目標(biāo)類本身而不是目標(biāo)類的接口 -->
<property name="proxyTargetClass">
<value>true</value>
</property>
<!-- 依賴注入上面定義的事務(wù)攔截器transactionInterceptor -->
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
- PC官方版
- 安卓官方手機(jī)版
- IOS官方手機(jī)版