常用資料庫連線池的配置
1.阿里巴巴-德魯伊druid連線池配置
1.1、簡介:
Druid是阿里巴巴開源平臺上的一個專案,整個專案由資料庫連線池、外掛框架和SQL解析器組成。該專案主要是為了擴充套件JDBC的一些限制,可以讓程式設計師實現一些特殊的需求,比如向金鑰服務請求憑證、統計SQL資訊、SQL效能收集、SQL注入檢查、SQL翻譯等,程式設計師可以通過定製來實現自己需要的功能。1.2、Druid支援哪些資料庫?
Druid支援所有JDBC相容的資料庫,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等等。Druid針對Oracle和MySql做了特別優化,比如Oracle的PS Cache記憶體佔用優化,MySql的ping檢測優化。
1.3、基本配置
<!-- 資料庫連線池 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <!-- 資料庫基本資訊配置 --> <property name="url" value="${jdbc_url}" /> <property name="username" value="${jdbc_user}" /> <property name="password" value="${jdbc_password}" /> <!-- 初始化連線數量 --> <property name="initialSize" value="${druid.initialSize}" /> <!-- 最大併發連線數 --> <property name="maxActive" value="${druid.maxActive}" /> <!-- 最大空閒連線數 :已經不再使用,配置了也沒效果--> <!-- <property name="maxIdle" value="${druid.maxIdle}" /> --> <!-- 最小空閒連線數 --> <property name="minIdle" value="${druid.minIdle}" /> <!-- 配置獲取連線等待超時的時間 --> <property name="maxWait" value="${druid.maxWait}" /> <!-- 超過時間限制是否回收 --> <property name="removeAbandoned" value="${druid.removeAbandoned}" /> <!-- 超過時間限制多長; --> <property name="removeAbandonedTimeout" value="${druid.removeAbandonedTimeout}" /> <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}" /> <!-- 配置一個連線在池中最小生存的時間,單位是毫秒 --> <property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}" /> <!-- 用來檢測連線是否有效的sql,要求是一個查詢語句--> <property name="validationQuery" value="${druid.validationQuery}" /> <!-- 申請連線的時候檢測 --> <property name="testWhileIdle" value="${druid.testWhileIdle}" /> <!-- 申請連線時執行validationQuery檢測連線是否有效,配置為true會降低效能 --> <property name="testOnBorrow" value="${druid.testOnBorrow}" /> <!-- 歸還連線時執行validationQuery檢測連線是否有效,配置為true會降低效能 --> <property name="testOnReturn" value="${druid.testOnReturn}" /> <!-- 開啟PSCache,並且指定每個連線上PSCache的大小 --> <property name="poolPreparedStatements" value="${druid.poolPreparedStatements}" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="${druid.maxPoolPreparedStatementPerConnectionSize}" /> <!--屬性型別是字串,通過別名的方式配置擴充套件外掛,常用的外掛有: 監控統計用的filter:stat 日誌用的filter:log4j 防禦SQL注入的filter:wall --> <property name="filters" value="${druid.filters}" /> </bean> <!-- 配置sqlsessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis/sqlMapConfiger.xml"></property> <property name="mapperLocations" value="classpath*:/com/sun/blog/sqlMap/**/*Mapper.xml"></property> </bean>
屬性配置檔案:
driverClassName = com.mysql.jdbc.Driver jdbc_url=jdbc:mysql://127.0.0.1:3306/blog?Unicode=true&characterEncoding=utf8# jdbc_user=root jdbc_password=1127 druid.initialSize = 5 druid.maxActive = 10 druid.minIdle = 3 druid.maxWait = 60000 druid.removeAbandoned = true druid.removeAbandonedTimeout = 180 druid.timeBetweenEvictionRunsMillis = 60000 druid.minEvictableIdleTimeMillis = 300000 druid.validationQuery = SELECT 1 FROM DUAL druid.testWhileIdle = true druid.testOnBorrow = false druid.testOnReturn = false #mysql一般配置為false druid.poolPreparedStatements = false druid.maxPoolPreparedStatementPerConnectionSize = 50 druid.filters = stat
2、HikariCP資料庫連線池
2.1、簡介
HikariCP
是一個高效能的 JDBC 連線池元件。下圖是效能的比較測試結果:
2.2、配置
<!-- 資料庫連線池 -->
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="poolName" value="SpringHikariCP"/>
<!-- 連線池中允許的最大連線數。預設值:10;推薦的公式:((core_count * 2) + effective_spindle_count) -->
<property name="maximumPoolSize" value="${jdbc.maximumPoolSize}"/>
<!-- 一個連線idle狀態的最大時長(毫秒),超時則被釋放(retired),預設:10分鐘 -->
<property name="idleTimeout" value="${jdbc.idleTimeout}"/>
<!-- 一個連線的生命時長(毫秒),超時而且沒被使用則被釋放(retired),預設:30分鐘,建議設定比資料庫超時時長少30秒,參考MySQL wait_timeout引數(show variables like '%timeout%';) -->
<property name="maxLifetime" value="${jdbc.maxLifetime}" />
<property name="connectionTestQuery" value="${jdbc.connectionTestQuery}"/>
<property name="dataSourceClassName" value="${jdbc.dataSourceClassName}"/>
<property name="dataSourceProperties">
<props>
<prop key="url">${jdbc.url}</prop>
<prop key="user">${jdbc.username}</prop>
<prop key="password">${jdbc.password}</prop>
</props>
</property>
</bean>
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
<constructor-arg ref="hikariConfig"/>
</bean>
<!-- 配置sqlsessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis/sqlMapConfiger.xml"></property>
<property name="mapperLocations" value="classpath*:/com/sun/blog/sqlMap/**/*Mapper.xml"></property>
</bean>
屬性配置檔案:
#資料庫連線池的配置
#jdbc.dataSourceClassName=oracle.jdbc.pool.OracleDataSource
#jdbc.url=jdbc:oracle:thin:@10.101.205.3:1521:orcl4
#屬性驅動自動識別
jdbc.dataSourceClassName=com.mysql.jdbc.jdbc2.optional.MysqlDataSource
jdbc.url=jdbc:mysql://127.0.0.1:3306/blog?Unicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=1127
jdbc.maximumPoolSize=10
jdbc.idleTimeout=30000
jdbc.maxLifetime=1800000
jdbc.connectionTestQuery=SELECT 1 from dual
相關推薦
常用資料庫連線池的配置
1.阿里巴巴-德魯伊druid連線池配置 1.1、簡介: Druid是阿里巴巴開源平臺上的一個專案,整個專案由資料庫連線池、外掛框架和SQL解析器組成。該專案主要是為了擴充套件JDBC的一些限制,可以
使用資料庫連線池配置資料來源
Tomcat伺服器的context.xml檔案中Context元素下增加Resource元素 oracle <Resource name="jdbc/hrs" auth="Container" type="javax.sql.DataSource" maxActive="100" ma
阿里Druid資料庫連線池配置解釋
#阿里資料庫連線池Druid配置 # 初始化連線大小 spring.datasource.druid.initial-size=20 # 最小空閒連線數 spring.datasource.druid.minIdle=20 # 最大連線數 spring.datasource.druid.maxAct
常用資料庫連線池(dbpc,c3p0,Druid)
1. 引言 1.1 定義 資料庫連線是一種關鍵的有限的昂貴的資源,這一點在多使用者的網頁應用程式中體現得尤為突出。對資料庫連線的管理能顯著影響到整個應用程式的伸縮性和健壯性,影響到程式的效能指標。資料庫連線池正是針對這個問題提出來的。 資料庫連線池負責分配、管理和釋放資料庫連線,它允許應
c3p0 資料庫連線池配置 詳細總結
前言 關於 c3p0 一般有這麼兩種配置,一種是通過 set 方法進行配置,另一種是通過在同 src 目錄下的 c3p0-conflg.xml 檔案或者 c3p0.properties 檔案進行相關的配置。 一、c3p0 通過 set 方法進行配置 原始碼: priva
資料庫連線失效導致程式異常怎麼辦—-mybatis資料庫連線池配置” 資料庫連線失效導致程式異常怎麼辦—-mybatis資料庫連線池配置
以mysql為例,資料庫連線預設是8小時,也就是說一個連線8小時未使用,就將被關閉,但是如果你使用了資料庫連線池技術,當連線被關閉之後,程式並不知道這是一個失效的連線,依然進行使用,就會導致程式出錯。怎麼辦呢? 1.修改mysql的預設時間,可以最大改為一年。(但是
阿里DRUID資料庫連線池配置
DRUID介紹 Druid是阿里實現的一個開源資料庫連線池,在功能、效能、擴充套件性方面,都超過其他資料庫連線池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。同時Druid還提供了封裝的sql監控,u
JDBC資料庫連線池配置
dbcp配置中文版本,翻譯自apache 官方文件,原文請見http://commons.apache.org/dbcp/configuration.html。 引數 描述 username 傳遞給JDBC驅動的用於建立連線的使用者名稱 password 傳遞給JDBC驅動的用於建立連線的密碼 url
資料庫連線池配置除錯
前些日子,私活中遇到的問題,是mysql資料庫 用sqlyog圖形化工具連線資料庫和啟動tomcat伺服器都報的是沒有足夠記憶體資料庫不能建立新連線異常。 按照網上的說法,是連線數配
java資料庫連線池配置的幾種方法
一,Tomcat配置資料來源: 方式一:在WebRoot下面建資料夾META-INF,裡面建一個檔案context.xml,內容如下: <Context> <Resource name="jdbc/test" auth="Container" type="javax.sq
tomcat-dbcp資料庫連線池配置以及使用時候的一些坑
一、資料庫連線池 開發的時候經常會需要對資料庫進行一些操作,比如說常見的增刪改查之類的,當資料量小的時候,可以直接進行操作,但是當資料量增多的時候,每一次連線以及釋放資料庫都會耗費一定的時間,這個時候,可以採用資料庫連線池來保持資料庫的連結,減少連線資料庫對程式帶來的開銷,
jfinal druid資料庫連線池配置
在jfinal配置類的configPlugin(Plugins me)中配置外掛 /** * 配置外掛<br> * 1,druid資料庫連線池<br> * 2,配置ActiveRecord外掛<br>
JavaEE —— 資料庫連線池配置檔案
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/db_forum username=root password
Spring+Hibernate+Proxool兩個資料庫連線池配置
1,配置兩個proxool.xml檔案,proxool.first.xml配置 <proxool> <alias>Proxool.First</alias> <proxool> <ali
javalite 使用druid資料庫連線池配置
在pom檔案中引入jar包 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId>
資料庫連線池-常用引數配置及含義
1. maxActive 連線池支援的最大連線數,這裡取值為20,表示同時最多有20個數據庫連線。一般把maxActive設定成可能的併發量就行了設 0 為沒有限制。 2. maxIdle 連線池中最多可空閒maxIdle個連線 ,這裡取值為20,表示即使沒有資料庫連線時
springBoot資料庫連線池常用配置
在配置檔案中新增配置如下(我使用的是多資料來源): spring.datasource.primary.url=jdbc\:mysql\://localhost\:3306/test?useUnicode\=true&characterEncoding\=utf
springboot配置預設資料庫連線池並解決初始連線未生效問題
目前Spring Boot中預設支援的連線池有dbcp,dbcp2, tomcat, hikari三種連線池。 在springboot1.5之前預設tomcat連線池, 版本org.springframework.boot.autoconfigure.jdbc.Data
JFinal配置資料庫連線池外掛和表類對映
配置資料庫連線池外掛,此處以Druid為例,還需要配置資料庫訪問外掛,即ActiveRecord外掛,用於建立資料庫中Table和Java Bean的mapping對映: public void configPlugin(Plugins me) { // 配置 druid
druid 資料庫連線池的詳細配置
首先說一下自己程式中遇到的問題,前一段時間新寫了一個專案,主要架構改進,為前端提供介面(spring +springmvc+mybatis) 在新專案中使用的是阿里的druid連線池,配置簡單,除了資料庫地址,驅動類,使用者名稱和密碼其他一起都是預設,開始的時候由於專案更新上線頻率比較多,沒有出現太