Maison >base de données >tutoriel mysql >Comment SpringBoot intègre Druid pour se connecter à MySQL8.0.11

Comment SpringBoot intègre Druid pour se connecter à MySQL8.0.11

王林
王林avant
2023-05-29 10:49:061474parcourir

1. Configurer les dépendances

Nous pouvons utiliser maven ou gradle pour la gestion des dépendances
Sélection de la version MySQL Connector/J :

Comment SpringBoot intègre Druid pour se connecter à MySQL8.0.11

Remarque : s'il s'agit de la série MySQL5.X, il y aura une compatibilité avec la version 8.0. Pilote X Un problème survient, faites attention !

1.1Configuration des dépendances MySQL 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.2Configuration des dépendances Druid

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 Configurer DataSource

Ici, nous utilisons Java Config. Lorsque j'ai utilisé la configuration YAML, j'ai constaté que l'invite de code était incomplète, ce qui augmentait considérablement le risque d'erreurs, il est donc recommandé d'utiliser Java Config.

2.1 Créer une classe de configuration

@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 Notes

Certains commentaires sont écrits dans le code
L'une est le pilote DriverClassName
8.0.11 (doit démarrer à partir de la version 8), l'original est une méthode abandonnée. nous pouvons le trouver en regardant directement le code source.
Il y a deux phrases dans com.mysql.jdbc.Driver

Classe de chargement `com.mysql.jdbc.Driver". Ceci est obsolète. La nouvelle classe de pilote est `com.mysql.cj.jdbc.Driver"
Le le pilote est automatiquement enregistré via le SPI et le chargement manuel de la classe du pilote est généralement inutile

signifie charger la classe "com.mysql.jdbc.Driver". Ceci est obsolète. La nouvelle classe de pilote est "com.mysql.cj.jdbc.Driver", alors faites attention au réglage d'une propriété "setDriverClassName". Une autre remarque est le réglage de l'URL. Il y a 4 paramètres auxquels il faut prêter attention

  • characterEncoding=utf8 ( Codage des caractères)

  • useSSL=false (Il a été constaté qu'il ne doit être ajouté qu'à partir de la version 8. Il n'est pas obligatoire en 5. Lors de la connexion à la base de données, ajoutez ce paramètre lorsque une erreur de fuseau horaire se produit. Il semble que ce problème ne se produit que lorsque j'utilise le pool de connexion Druid)

  • allowPublicKeyRetrieval=true (il n'y a aucun problème pour se connecter avec le compte root, mais la récupération de clé publique sera demandée lors de l'utilisation. un compte normal) Erreur)


  • Pour plus de configuration, veuillez vous référer au wiki du projet Druid et configurez-le selon vos besoins

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer