中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

SpringMVC配置數(shù)據(jù)庫連接的方式有幾種-創(chuàng)新互聯(lián)

本文以用SpringMVC數(shù)據(jù)庫的連接配置為例,為大家分析SpringMVC使用配置文件配置數(shù)據(jù)庫連接的四種方式。閱讀完整文相信大家對數(shù)據(jù)庫連接配置有了一定的認識。

創(chuàng)新互聯(lián)是一家專業(yè)提供磁縣企業(yè)網(wǎng)站建設,專注與成都網(wǎng)站建設、成都做網(wǎng)站、H5網(wǎng)站設計、小程序制作等業(yè)務。10年已為磁縣眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設公司優(yōu)惠進行中。

1. dbConfig.properties 文件

#----------------數(shù)據(jù)庫連接基本配置---------------
#數(shù)據(jù)庫驅(qū)動
dataSource.driverClassName=com.mysql.jdbc.Driver
#數(shù)據(jù)庫連接地址
dataSource.url=jdbc\:mysql\://127.0.0.1\:3306/qfx_activiti_test?characterEncoding\=UTF-8
#用戶名
dataSource.userName=root
#密碼
dataSource.passWord=666666
#SQL查詢,在將連接返回給調(diào)用者之前,用來驗證從連接池取出的連接是否有效
dataSource.validationQuery=select 1

#----------------dbcp連接池配置-----------------
#初始連接數(shù)量
dbcp.initialSize=5
#大連接數(shù)量
dbcp.maxActive=50
#最小空閑連接數(shù)量
dbcp.minIdle =5
#大空閑連接數(shù)量
dbcp.maxIdle=20
#大等待連接時間(以毫秒計數(shù),1000等于60秒)
dbcp.maxWait=1000
#連接超時是否自動回收
dbcp.removeAbandoned=true
#每隔一定時間去檢測一次空閑連接是否超時(毫秒),默認值為-1,即不開啟
dbcp.timeBetweenEvictionRunsMillis=60000
#連接池中連接,在時間段內(nèi)一直空閑,被逐出連接池的時間(毫秒)
dbcp.minEvictableIdleTimeMillis=59000
#后臺對象清理時,每次檢查幾個連接,建議設置和maxActive一樣大,這樣每次可以有效檢查所有的連接
dbcp.numTestsPerEvictionRun=50
#定時對線程池中的連接進行校驗,對無效的鏈接進行關(guān)閉后,會適當建立連接保證最小的minIdle連接數(shù)
dbcp.testWhileIdle=true

#----------------c3p0連接池配置-----------------
#連接池中保留的最小連接數(shù).默認為:3
c3p0.minPoolSize=10
#連接池中保留的大連接數(shù).默認為:15
c3p0.maxPoolSize=100
#初始化時創(chuàng)建的連接數(shù),應在minPoolSize與maxPoolSize之間取值.默認為3
c3p0.initialPoolSize=10
#大空閑時間,60秒內(nèi)未使用則連接被丟棄。若為0則永不丟棄。默認值: 0
c3p0.maxIdleTime=60
#JDBC的標準參數(shù),用以控制數(shù)據(jù)源內(nèi)加載的PreparedStatements數(shù)量,如果maxStatements與maxStatementsPerConnection均為0,則緩存被關(guān)閉。默認值:0
c3p0.maxStatements=6000
#定義了連接池內(nèi)單個連接所擁有的大緩存statements數(shù)。Default: 0
c3p0.maxStatementsPerConnection=0
#每60秒檢查所有連接池中的空閑連接.默認值:0,不檢查
c3p0.idleConnectionTestPeriod=1800
#當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數(shù)。默認值:3
c3p0.acquireIncrement=5
#定義所有連接測試都執(zhí)行的測試語句。在使用連接測試的情況下這個一顯著提高測試速度
c3p0.preferredTestQuery=select 1
#c3p0是異步操作的,緩慢的JDBC操作通過幫助進程完成.擴展這些操作可以有效的提升性能,通過多線程實現(xiàn)多個操作同時被執(zhí)行.默認值:3
c3p0.numHelperThreads=3

#----------------druid連接池配置-----------------
#屬性類型是字符串,通過別名的方式配置擴展插件,常用的插件有:監(jiān)控統(tǒng)計用的filter:stat日志用的filter:log4j防御sql注入的filter:wall  
druid.filters=stat
#大并發(fā)連接數(shù)
druid.maxActive=20
#初始化連接數(shù)量
druid.initialSize=1
#配置獲取連接等待超時的時間
druid.maxWait=60000
#最小空閑連接數(shù)
druid.minIdle=10
#大空閑連接數(shù)
druid.maxIdle=15
#配置間隔多久才進行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒
druid.timeBetweenEvictionRunsMillis=60000
#配置一個連接在池中最小生存的時間,單位是毫秒
druid.minEvictableIdleTimeMillis=300000
#建議配置為true,不影響性能,并且保證安全性.申請連接的時候檢測,如果空閑時間大于timeBetweenEvictionRunsMillis,執(zhí)行validationQuery檢測連接是否有效.
druid.testWhileIdle=true
#申請連接時執(zhí)行validationQuery檢測連接是否有效,這里建議配置為true,防止取到的連接不可用,但會降低性能,默認值:true
druid.testOnBorrow=true
#歸還連接時執(zhí)行validationQuery檢測連接是否有效,會降低性能,默認值:false
druid.testOnReturn=false
#緩存preparedStatement,也就是PSCache,對支持游標的數(shù)據(jù)庫性能提升巨大,比如說oracle,在mysql5.5以下的版本中沒有PSCache功能,建議關(guān)閉掉,5.5及以上版本有PSCache,建議開啟
druid.maxOpenPreparedStatements=20

2. applicationContext-dataSources.xml 配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans
   xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
     http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans.xsd
   ">

   <!-- 1 引用數(shù)據(jù)庫連接配置文件 -->
   <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
     <property name="locations">
       <list>
         <value>classpath:dbConfig.properties</value>
       </list>
     </property>
   </bean>

   <!-- 2.1 配置tomcat dbcp連接池,destroy-method="close"是將用完的connect重新放回連接池 -->
   <bean id="dbcpDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
     <!-- 數(shù)據(jù)庫基本信息配置 -->
     <property name="driverClassName" value="${dataSource.driverClassName}" />
     <property name="url" value="${dataSource.url}" />
     <property name="username" value="${dataSource.userName}" />
     <property name="password" value="${dataSource.passWord}" />
     <!-- 配置驗證連接有效與否的SQL,不同的數(shù)據(jù)庫配置不同 -->
     <property name="validationQuery" value="${dataSource.validationQuery}" />

     <!-- 初始連接 -->
     <property name="initialSize" value="${dbcp.initialSize}" />
     <!-- 大連接 -->
     <property name="maxActive" value="${dbcp.maxActive}" />
     <!--最小空閑連接--> 
     <property name="minIdle" value="${dbcp.minIdle}" />
     <!-- 大空閑連接 -->
     <property name="maxIdle" value="${dbcp.maxIdle}" />
     <!-- 大等待連接(以毫秒計數(shù)) -->
     <property name="maxWait" value="${dbcp.maxWait}" />
     <!--連接超時是否自動回收--> 
     <property name="removeAbandoned" value="${dbcp.removeAbandoned}" />
     <!-- 每隔一定時間去檢測一次空閑連接是否超時(毫秒),默認值為-1,即不開啟 -->
     <property name="timeBetweenEvictionRunsMillis" value="${dbcp.timeBetweenEvictionRunsMillis}" />
     <!-- 連接池中連接,在時間段內(nèi)一直空閑,被逐出連接池的時間(毫秒) -->
     <property name="minEvictableIdleTimeMillis" value="${dbcp.minEvictableIdleTimeMillis}" />
     <!-- 后臺對象清理時,每次檢查幾個連接,建議設置和maxActive一樣大,這樣每次可以有效檢查所有的連接 -->
     <property name="numTestsPerEvictionRun" value="${dbcp.numTestsPerEvictionRun}" />
     <!-- 定時對線程池中的連接進行校驗,對無效的鏈接進行關(guān)閉后,會適當建立連接保證最小的minIdle連接數(shù) -->
     <property name="testWhileIdle" value="${dbcp.testWhileIdle}" />
   </bean>

   <!-- 2.2 配置c3p0連接池,destroy-method="close"是將用完的connect重新放回連接池 -->
   <bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
     <property name="driverClass" value="${dataSource.driverClassName}" />
     <property name="jdbcUrl" value="${dataSource.url}" />
     <property name="user" value="${dataSource.userName}" />
     <property name="password" value="${dataSource.passWord}" />
     <!--定義所有連接測試都執(zhí)行的測試語句.在使用連接測試的情況下這個一顯著提高測試速度 -->
     <property name="preferredTestQuery" value="${dataSource.validationQuery}" />

     <!--連接池中保留的最小連接數(shù).默認為:3-->
     <property name="minPoolSize" value="${c3p0.minPoolSize}" />
     <!--連接池中保留的大連接數(shù).默認為:15 -->
     <property name="maxPoolSize" value="${c3p0.maxPoolSize}" />
     <!--初始化時創(chuàng)建的連接數(shù),應在minPoolSize與maxPoolSize之間取值.默認為3 -->
     <property name="initialPoolSize" value="${c3p0.initialPoolSize}" />
     <!--大空閑時間,60秒內(nèi)未使用則連接被丟棄.若為0則永不丟棄.默認值: 0 -->
     <property name="maxIdleTime" value="${c3p0.maxIdleTime}" />
     <!--JDBC的標準參數(shù),用以控制數(shù)據(jù)源內(nèi)加載的PreparedStatements數(shù)量,如果maxStatements與maxStatementsPerConnection均為0,則緩存被關(guān)閉.默認值:0-->
     <property name="maxStatements" value="${c3p0.maxStatements}" />
     <!--定義了連接池內(nèi)單個連接所擁有的大緩存statements數(shù).默認值:0 -->
     <property name="maxStatementsPerConnection" value="${c3p0.maxStatementsPerConnection}" />
     <!--每60秒檢查所有連接池中的空閑連接.默認值:0,不檢查-->
     <property name="idleConnectionTestPeriod" value="${c3p0.idleConnectionTestPeriod}" />
     <!--當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數(shù).默認值:3 -->
     <property name="acquireIncrement" value="${c3p0.acquireIncrement}" />
     <!--c3p0是異步操作的,緩慢的JDBC操作通過幫助進程完成.擴展這些操作可以有效的提升性能,通過多線程實現(xiàn)多個操作同時被執(zhí)行.默認值:3-->   
     <property name="numHelperThreads" value="${c3p0.numHelperThreads}" />
   </bean>

   <!-- 2.3  配置阿里 druid數(shù)據(jù)庫連接池,destroy-method="close"是將用完的connect重新放回連接池 -->
   <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">  
     <!-- 數(shù)據(jù)庫基本信息配置 -->
     <property name="driverClassName" value="${dataSource.driverClassName}" />
     <property name="url" value="${dataSource.url}" />
     <property name="username" value="${dataSource.userName}" />
     <property name="password" value="${dataSource.passWord}" />
     <!-- 配置驗證連接有效與否的SQL,不同的數(shù)據(jù)庫配置不同 -->
     <property name="validationQuery" value="${dataSource.validationQuery}" />

     <!-- 屬性類型是字符串,通過別名的方式配置擴展插件,常用的插件有:監(jiān)控統(tǒng)計用的filter:stat日志用的filter:log4j防御sql注入的filter:wall -->
     <property name="filters" value="${druid.filters}" />
     <!-- 大并發(fā)連接數(shù) -->
     <property name="maxActive" value="${druid.maxActive}" />
     <!-- 初始化連接數(shù)量 -->
     <property name="initialSize" value="${druid.initialSize}" />
     <!-- 配置獲取連接等待超時的時間 -->
     <property name="maxWait" value="${druid.maxWait}" />
     <!-- 最小空閑連接數(shù) -->
     <property name="minIdle" value="${druid.minIdle}" />
     <!-- 大空閑連接數(shù) -->
     <!-- <property name="maxIdle" value="${druid.maxIdle}" /> -->
     <!-- 配置間隔多久才進行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒 -->
     <property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" />
     <!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->
     <property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" />  
     <!-- 建議配置為true,不影響性能,并且保證安全性.申請連接的時候檢測,如果空閑時間大于timeBetweenEvictionRunsMillis,執(zhí)行validationQuery檢測連接是否有效. --> 
     <property name="testWhileIdle" value="${druid.testWhileIdle}" />
     <!-- 申請連接時執(zhí)行validationQuery檢測連接是否有效,這里建議配置為TRUE,防止取到的連接不可用,但會降低性能,默認值:true--> 
     <property name="testOnBorrow" value="${druid.testOnBorrow}" />
     <!-- 歸還連接時執(zhí)行validationQuery檢測連接是否有效,會降低性能,默認值:false -->
     <property name="testOnReturn" value="${druid.testOnReturn}" />
     <!-- 緩存preparedStatement,也就是PSCache,對支持游標的數(shù)據(jù)庫性能提升巨大,比如說oracle,在mysql5.5以下的版本中沒有PSCache功能,建議關(guān)閉掉,5.5及以上版本有PSCache,建議開啟 -->
     <property name="maxOpenPreparedStatements" value="${druid.maxOpenPreparedStatements}" />
   </bean>

</beans>

3. applicationContext-TransactionManager.xml 配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans
   xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:tx="http://www.springframework.org/schema/tx"
   xmlns:aop="http://www.springframework.org/schema/aop"
   xsi:schemaLocation="
     http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans.xsd
     http://www.springframework.org/schema/tx 
     http://www.springframework.org/schema/tx/spring-tx.xsd
     http://www.springframework.org/schema/aop 
     http://www.springframework.org/schema/aop/spring-aop.xsd
   ">
   <!-- aspect注解生效,激活自動代理功能,如果不使用,可以刪除此配置 -->
   <aop:aspectj-autoproxy proxy-target-class="true" />

   <!-- 配置事物管理器 -->
   <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
     <!-- 注入數(shù)據(jù)庫連接池,mybatis的sqlSessionFactory中的配置需要與這里保持一致 -->
     <property name="dataSource" ref="dbcpDataSource" />
     <!-- <property name="dataSource" ref="c3p0DataSource" /> -->
     <!-- <property name="dataSource" ref="druidDataSource" /> -->
   </bean>

   <!-- 配置事物的傳播特性 -->
   <tx:advice id="txAdvice" transaction-manager="transactionManager">
     <tx:attributes>
       <tx:method name="add*" propagation="REQUIRED"/>
       <tx:method name="create*" propagation="REQUIRED"/>
       <tx:method name="insert*" propagation="REQUIRED"/>
       <tx:method name="save*" propagation="REQUIRED"/>
       <tx:method name="find*" propagation="REQUIRED"/>
       <tx:method name="get*" propagation="REQUIRED"/>
       <tx:method name="update*" propagation="REQUIRED"/>
       <tx:method name="delete*" propagation="REQUIRED"/>
       <tx:method name="remove*" propagation="REQUIRED"/>
     </tx:attributes>
   </tx:advice>

   <!-- 哪些類的哪些方法參與事物 -->
   <aop:config>
     <!-- 匹配指定包下(遞歸)所有類所有方法,返回值匹配任何情況 -->
     <aop:pointcut id="allManagerMethod" expression="execution(* com.qfx.*.*.services.impl..*.*(..))"/>
     <aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
   </aop:config>
</beans>

4. SpringMVC主配置文件applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
   xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="
     http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans.xsd
     http://www.springframework.org/schema/context
     http://www.springframework.org/schema/context/spring-context.xsd
   ">

   <!-- 啟動組件掃描,排除@Controller組件,該組件由SpringMVC配置文件掃描 -->
   <context:component-scan base-package="com.qfx">
     <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
   </context:component-scan>

   <import resource="applicationContext-dataSources.xml"/>
   <import resource="applicationContext-TransactionManager.xml"/>

</beans>

看完上述內(nèi)容,你們對數(shù)據(jù)庫連接配置有進一步的了解嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網(wǎng)頁名稱:SpringMVC配置數(shù)據(jù)庫連接的方式有幾種-創(chuàng)新互聯(lián)
本文路徑:http://www.rwnh.cn/article28/ccgpcp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供電子商務網(wǎng)站維護、商城網(wǎng)站、網(wǎng)站設計公司、網(wǎng)站內(nèi)鏈、移動網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設網(wǎng)站維護公司
大埔县| 犍为县| 榆社县| 安陆市| 孝昌县| 合水县| 都江堰市| 岑巩县| 兴宁市| 呼图壁县| 吴旗县| 台东市| 凯里市| 游戏| 小金县| 五大连池市| 宕昌县| 调兵山市| 信宜市| 彩票| 舒城县| 德化县| 都匀市| 合肥市| 大渡口区| 弋阳县| 永宁县| 海林市| 兴业县| 清徐县| 巴东县| 汝南县| 巴青县| 积石山| 垫江县| 乌什县| 麻栗坡县| 奈曼旗| 新竹县| 兴业县| 蕉岭县|