SpringBoot+Druid+Mysql+Mybatis


 

Druid連接池

連接池技術

連接池技術預先建立多個數據庫連接對象,然后將連接對象保存到連接池中。當客戶請求到來時,從池中取出一個連接對象為客戶服務,當請求完成后,客戶程序調用close()方法,將連接對象放回池中

HiKaricp:速度比較快;

       TomCat-jdbc、c3p0、proxoll、bonecp

Druid:功能比較齊全;

 開發步驟

首先在pom.xml引入所需要的依賴(mysql version按個人實際安裝的版本)

   <!--mysql依賴-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>
        <!--mybatis依賴-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.0</version>
        </dependency>
        <!-- 阿里系的Druid依賴包 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>

 

 注意:引入的依賴一定要正確

剛開始按網上的某些教程引入的druid依賴是這樣的

 

 結果一直引入失敗,花了將近一個小時,實在不想吐糟.....

然后在application.properties(個人比較傾向)對MySQL,Mybatis進行設置

 

 具體的就不多說了,這里需要注意的有:

如果MySQL是5.X版本的話----spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver

 

Mybatis的xml映射文件路徑SpringBoot默認是放在resources目錄下,如果想自定義文件路徑跟dao層在同一目錄下,需要在pom.xml中設置(大概原因是resources的路徑下資源springboot默認是不編譯的,需要自己配置,如果不配置,在啟動的時候就會提示找不到dao層里的方法)

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

 

---springboot默認的連接池是HiKaricp,配置Mysql連接的是spring.datasource.xxxxx,但這里使用的是阿里的Druid連接池,

所以一定要配置正確----spring.datasource.druid.xxxxx,否則運行就會出錯....

Druid的配置還是蠻多的,這里附上本人application.properties的druid配置

#連接池指定 springboot2.0版本默認使用HicariCp 此處替換成Druid
#為下面的連接池的補充設置,應用到上面所有數據源中
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 初始化大小,最小,最大
spring.datasource.druid.initial-size=1
spring.datasource.druid.min-idle=3
spring.datasource.druid.max-active=20
spring.datasource.druid.async-init=false
#配置獲取等待連接超時的時間
spring.datasource.druid.max-wait=60000
# 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒
spring.datasource.druid.timeBetweenEvictionRunsMillis=60000
# 配置一個連接在池中最小生存的時間,單位是毫秒
spring.datasource.druid.minEvictableIdleTimeMillis=300000
spring.datasource.druid.validationQuery=SELECT 'x'
spring.datasource.druid.testWhileIdle=true
spring.datasource.druid.testOnBorrow=false
spring.datasource.druid.testOnReturn=false
# 是否緩存preparedStatement,打開PSCache,並且指定每個連接上PSCache的大小,官方建議MySQL下關閉,如果用於SQL防火牆,建議打開
spring.datasource.druid.poolPreparedStatements=true
spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize=20
# 通過connectProperties屬性來打開mergeSql功能;慢SQL記錄
#spring.datasource.druid.filters=stat,wall,log4j
# 配置監控統計攔截的filters,去掉后監控界面sql無法統計,'wall'用於防火牆
spring.datasource.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
application.properties

啟用單元測試

 

 

 結果(與application.properties設的值對應上)

 

 

(很多細節一定要注意,看似不起眼,一旦出錯,半天也找不到原因!反正采坑一時爽,一直才坑一直爽...)

 這樣SpringBoot+MySQL+Mybatis+Druid最基本的整合就完成了,更深入的設置有待研究.....

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM