1. 程式人生 > >SpringBoot切換資料庫連線池

SpringBoot切換資料庫連線池

資料庫連線池負責分配、管理和釋放資料庫連線,它允許應用程式重複使用一個現有的資料庫連線,而不是再重新建立一個;釋放空閒時間超過最大空閒時間的資料庫連線來避免因為沒有釋放資料庫連線而引起的資料庫連線遺漏。這項技術能明顯提高對資料庫操作的效能。

1.資料庫連線池有哪些?

DBCP(DBCP(DataBase Connection Pool)資料庫連線池,是java資料庫連線池的一種,由Apache開發,通過資料庫連線池,可以讓程式自動管理資料庫連線的釋放和斷開。)
C3P0是一個開源的JDBC連線池,它實現了資料來源和JNDI繫結,支援JDBC3規範和JDBC2的標準擴充套件。目前使用它的開源專案有Hibernate,Spring等。

    c3p0與dbcp區別
    dbcp沒有自動回收空閒連線的功能
    c3p0有自動回收空閒連線功能

BoneCP是一個快速,開源的資料庫連線池。幫你管理資料連線讓你的應用程式能更快速地訪問資料庫。比C3P0/DBCP連線池快25倍
Proxool 這是一個Java SQL Driver驅動程式,提供了對你選擇的其它型別的驅動程式的連線池封裝。可以非常簡單的移植到現存的程式碼中。完全可配置。快速,成熟,健壯。可以透明地為你現存的JDBC驅動程式增加連線池功能。
tomcat連線池Tomcat預設使用的是DBCP資料庫連線池,其實從本質上講,Tomcat是利用Apache Commons DBCP來實現的,只不過把特定的功能整合到了tomcat-dbcp.jar包中。
HikariCP

是一個高效的資料庫連線池。可以看到各個連線池的效能:
這裡寫圖片描述

2.如何檢視springboot的資料庫連線池?

@SpringBootApplication
public class QianyidemoApplication implements CommandLineRunner {
    @Autowired
    DataSource dataSource;
   public static void main(String[] args) {
     SpringApplication.run(QianyidemoApplication.class, args);
    }
    @Override
public void run(String... args) throws Exception { System.out.println("DATASOURCE = " + dataSource); } }

Console控制檯打印出:

DATASOURCE = [email protected]5063621b{ConnectionPool[defaultAutoCommit=null; defaultReadOnly=null; defaultTransactionIsolation=-1; defaultCatalog=null; driverClassName=net.sf.log4jdbc.DriverSpy; maxActive=100; maxIdle=100; minIdle=10; initialSize=10; maxWait=30000; testOnBorrow=false; testOnReturn=false; timeBetweenEvictionRunsMillis=5000; numTestsPerEvictionRun=0; minEvictableIdleTimeMillis=60000; testWhileIdle=false; testOnConnect=false; password=********; url=jdbc:log4jdbc:mysql://localhost:3306/qianyi?createDatabaseIfNotExist=true&useUnicode=true&useUnicode=true&characterEncoding=utf8&autoReconnect=true&verifyServerCertificate=false&useSSL=false&sessionVariables=sql_mode='NO_ENGINE_SUBSTITUTION'&jdbcCompliantTruncation=false; username=root; validationQuery=null; validationQueryTimeout=-1; validatorClassName=null; validationInterval=3000; accessToUnderlyingConnectionAllowed=true; removeAbandoned=false; removeAbandonedTimeout=60; logAbandoned=false; connectionProperties=null; initSQL=null; jdbcInterceptors=null; jmxEnabled=true; fairQueue=true; useEquals=true; abandonWhenPercentageFull=0; maxAge=0; useLock=false; dataSource=null; dataSourceJNDI=null; suspectTimeout=0; alternateUsernameAllowed=false; commitOnReturn=false; rollbackOnReturn=false; useDisposableConnectionFacade=true; logValidationErrors=false; propagateInterruptState=false; ignoreExceptionOnPreLoad=false; useStatementFacade=true; }

可以看到預設是採用的是tomcat.jdbc資料庫連線池

3.切換為HikariCP資料連線池,首先加入依賴

    <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
    </dependency>

排除tomcat資料庫連線池,可以用命令檢視在哪裡排除:mvn dependency:tree > tree.log 檢視排除地方

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.tomcat</groupId>
                    <artifactId>tomcat-jdbc</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

console打印出:DATASOURCE = HikariDataSource (HikariPool-1)
排除之後,重新啟動應用程式,則資料庫連線池已經更換為了HikariCP。
連線池配置的屬性到application.properties中配置。
最後打個廣告,歡迎加入springBoot交流群:319404523(群1滿了之後請加群2)192277547(群2)

相關推薦

SpringBoot切換資料庫連線

資料庫連線池負責分配、管理和釋放資料庫連線,它允許應用程式重複使用一個現有的資料庫連線,而不是再重新建立一個;釋放空閒時間超過最大空閒時間的資料庫連線來避免因為沒有釋放資料庫連線而引起的資料庫連線遺漏。這項技術能明顯提高對資料庫操作的效能。 1.資

Druid - SpringBoot配置資料庫連線druid

關於Druid     DRUID是阿里巴巴開源平臺上一個資料庫連線池實現,它結合了C3P0、DBCP、PROXOOL等DB池的優點,同時加入了日誌監控,可以很好的監控DB池連線和SQL的執行情況,可以說是針對監控而生的DB連線池,是目前最好的連線池。

Springboot+druid資料庫連線使用

1. 為什麼要使用資料庫連線池        使用資料庫連線池主要考慮到程式與資料庫建立連線的效能。建立一個新的資料庫是一個很耗時的過程,在使用完之後,可能還需要不斷的釋放建立的連線,對資源的損耗大。        而採用資料庫連線池之後,首先就建立了固定數量的資料庫連線,需

Springboot預設資料庫連線及常用屬性

Springboot預設資料庫連線池為 Tomcat JDBC Pool ,常用的屬性見下表: 屬性 描述 預設值 defaultAutoCommit 連線池中建立的連線預設是否自動提交事務 驅動的預設值 defaultReadOnly

springboot配置預設資料庫連線並解決初始連線未生效問題

目前Spring Boot中預設支援的連線池有dbcp,dbcp2, tomcat, hikari三種連線池。  在springboot1.5之前預設tomcat連線池, 版本org.springframework.boot.autoconfigure.jdbc.Data

SpringBoot初始教程之資料庫連線(druid)

SpringBoot初始教程之資料庫連線池(druid) 1.介紹 Druid是一個JDBC元件庫,包括資料庫連線池、SQL Parser等元件。DruidDataSource是最好的資料庫連線池。SpringBoot支援任何一種資料庫連結池的配置,在這裡用druid作為例子進行講解 2

資料庫連線使用(springboot

轉自:https://blog.csdn.net/u014209205/article/details/80625963 1. 為什麼要使用資料庫連線池         使用資料庫連線池主要考慮到程式與資料庫建立連線

springboot 整合阿里 Druid 資料庫連線

一,Druid是什麼? Druid是Java語言中最好的資料庫連線池。Druid能夠提供強大的監控和擴充套件功能。 二, 在哪裡下載druid 三, 怎麼獲取Druid的原始碼 Druid是一個開源專案,原始碼託管在github上,原始碼倉庫

Springboot 2.0選擇HikariCP作為預設資料庫連線的五大理由

轉載自公眾號:工匠小豬豬的技術世界 摘要: 本文 非原創 ,是筆者蒐集了一些HikariCP相關的資料整理給大家的介紹,主要講解了為什麼sb2選擇了HikariCP以及HikariCP為什麼這麼快。 Springboot2預設資料庫連線池選擇了HikariC

Springboot 2.0選擇HikariCP作為預設資料庫連線的原因及與Druid的比較

摘要: 本文非原創,是筆者蒐集了一些HikariCP相關的資料整理給大家的介紹,主要講解了為什麼sb2選擇了HikariCP以及HikariCP為什麼這麼快。 Springboot2預設資料庫連線池選擇了HikariCP為何選擇HikariCP理由一、程式碼量理由二、口碑理

springboot整合druid連線資料庫密碼加密)

<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.20</version

SpringBoot中配置使用Druid資料庫連線

Druid 是阿里巴巴開源的Java資料庫連線池外掛,Druid能夠提供強大的監控和擴充套件功能 配置使用Druid資料庫連線池 新增依賴 Gradle compile('com.alibaba:druid-spring-boot-sta

springboot資料庫連線使用策略

springboot官方文件介紹資料庫連線池的使用策略如下: Production database connections can also be auto-configured using

springBoot資料庫連線常用配置

在配置檔案中新增配置如下(我使用的是多資料來源): spring.datasource.primary.url=jdbc\:mysql\://localhost\:3306/test?useUnicode\=true&characterEncoding\=utf

SpringBoot整合HikariCP資料庫連線

本篇文章主要實現SpringBoot中使用hikariCP; 一 、使用工具 1. JDK1.8 2. springToolSuit(STS) 3. maven 二、建立專案 1.首先建立一個SpringBoot專案,勾選web,mysql等具體怎

springBoot(八)整合之整合阿里druid資料庫連線

         當時是基於C3P0處理資料庫,然後偶發性出現連線超時,然後加上需要檢視連線次數以及訪問次數,我就想到採用druid資料庫連線池,話不多說,先上程式碼 其實下面的部分出於演示,用硬編碼,其實完全可以通過配置屬性,來進行動態改變,至於SpringCloud

SpringBoot專案開發(五):HikariCP資料庫連線

1.前兩篇是介紹控制器與頁面的,本篇將介紹 資料庫連線池 ,它很重要,SpringBoot 2.0 預設連線池就是Hikari 2.可以看一下這位朋友對幾大主流資料庫連線池的測試報告,結論是:hikariCP在併發較高的情況下,效能基本上沒有下降。我自己也

Java資料庫連線細節探討

我們知道,資料庫連線池可以把資料庫的連線快取起來,下次使用的話可以直接取到快取起來的資料庫連線。那麼,在這個過程中有幾個細節需要注意: 1、資料庫的連線數有沒有限制? 2、資料庫會不會自動斷開已經建立的連線? 3、如果資料庫重啟了,但應用沒有重啟,那麼資料庫連線池中的所有連線都不可用了,

JavaWeb_day10_資料庫連線_c3p0_DBUtils

1.在實際開發中,“獲取連線”和“釋放資源”是很消耗系統資源的兩個過程,為了解決此問題,採用連線池技術,共享連線connection 2.連線池概念 3.Java的資料庫連線池的公共介面:javax.sql.DataSource 常見的連線池:DBCP   C3

手寫資料庫連線附gp連線jar包地址

  手寫資料庫連線並,測試.   最近資料庫要連線GP資料庫(GreenplumSQL),在建立連線的時候需要做建立不同的連線數量. 其實當想到寫資料庫連線時,完全可以通過springdata jpa直接寫介面,這是一種思路. 所以在使用的使用,就寫了個dem