SpringBoot+Druid+Mysql+Mybatis

 

Druid鏈接池

鏈接池技術

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

HiKaricp:速度比較快;

       TomCat-jdbc、c3p0、proxoll、bonecpmysql

Druid:功能比較齊全;spring

 開發步驟sql

首先在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依賴是這樣的springboot

 

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

而後在application.properties(我的比較傾向)對MySQL,Mybatis進行設置app

 

 具體的就很少說了,這裏須要注意的有:async

若是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最基本的整合就完成了,更深刻的設置有待研究.....

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息