首頁 >資料庫 >mysql教程 >SpringBoot怎麼整合Druid連線MySQL8.0.11

SpringBoot怎麼整合Druid連線MySQL8.0.11

王林
王林轉載
2023-05-29 10:49:061474瀏覽

1.設定依賴

依賴管理我們可以使用maven或gradle
MySQL Connector/J版本選擇:

SpringBoot怎麼整合Druid連線MySQL8.0.11

##注意:如果是MySQL5.X系列的話,使用8.0.X的驅動會有相容性問題出現,請留意!

1.1MySQL Connector/J依賴設定maven

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.11</version>
</dependency>

gradle

// https://mvnrepository.com/artifact/mysql/mysql-connector-java
compile group: "mysql", name: "mysql-connector-java", version: "8.0.11"

1.2Druid依賴設定

 maven

<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>

#gradle

// https://mvnrepository.com/artifact/com.alibaba/druid
compile group: "com.alibaba", name: "druid", version: "1.1.10"

2.設定DataSource

這裡我們使用Java Config。當我使用YAML配置的時候,發現程式碼提示不完整,這大大增加了出錯的可能性,所以推薦使用Java Config。

 2.1建立設定類別

@Configuration
public class Config {
    @Bean
    public DruidDataSource druidDataSource() {
        //Druid 数据源配置
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/work?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true");
        dataSource.setUsername("webuser");
        dataSource.setPassword("123456");
        //初始连接数(默认值0)
        dataSource.setInitialSize(8);
        //最小连接数(默认值0)
        dataSource.setMinIdle(8);
        //最大连接数(默认值8,注意"maxIdle"这个属性已经弃用)
        dataSource.setMaxActive(32);
        return dataSource;
    }
}

2.2注意事項

部分註解寫在程式碼裡面了,這裡說兩個注意事項
一個是DriverClassName
8.0 .11驅動(應該是8版開始),棄用了原來的方法,我們直接去看源碼也能找到。
com.mysql.jdbc.Driver裡面有兩句話

Loading class `com.mysql.jdbc.Driver". This is deprecated. The new driver class is `com.mysql. cj.jdbc.Driver"
The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

意思是載入類別「com.mysql.jdbccc .Driver」。這已被棄用。新的驅動程式類別是`com.mysql.cj.jdbc.Driver" 所以注意一個屬性的設定「setDriverClassName」 另一個注意事項是URL的設置,有4個參數要注意一下

  • #characterEncoding=utf8 (字元編碼)

  • useSSL=false (發現是8版本開始才需要添加,5.X印像中不需要,添加這個參數可能和MySQL的SSL連線設定有關係)

  • serverTimezone=UTC (當連線資料庫時候,出現Time Zone錯誤時加入此參數,我似乎是使用Druid連線池時才出現的這個問題)

  • allowPublicKeyRetrieval=true (使用root帳號登陸沒問題,使用普通帳號會提示Public Key Retrieval錯誤)

更多配置,請參考Druid專案中的wiki,根據需求進行配置

SpringBoot怎麼整合Druid連線MySQL8.0.11

以上是SpringBoot怎麼整合Druid連線MySQL8.0.11的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除