Configuration de la connexion SQL Server pour RuoYi avec Druid

Pour connecter le framework RuoYi à une base de données SQL Server en tant que source de données esclave, modifiez la configuration dans le fichier application-druid.yml comme suit :


spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
    druid:
      master:
        url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=principale;SelectMethod=cursor;encrypt=false
        username: admin
        password: secret123
        driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
      slave:
        enabled: true
        url: jdbc:sqlserver://exemple.com:1433;SelectMethod=Cursor;DatabaseName=secondaire
        username: lecteur
        password: access456
        driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
      initialSize: 5
      minIdle: 10
      maxActive: 20
      maxWait: 60000
      connectTimeout: 30000
      socketTimeout: 60000
      timeBetweenEvictionRunsMillis: 60000
      minEvictableIdleTimeMillis: 300000
      maxEvictableIdleTimeMillis: 900000
      validationQuery: SELECT 1

Ajustez les paramètres d'URL, d'identifiant et de mot de passe selon votre environnement. La requête de validation est modifiée pour éviter l'utilisation de DUAL, absent dans SQL Server. Si la requête échoue, utilisez une requête valide comme SELECT @@VERSION.

Ensuite, ajoutez la dépendance du pilote JDBC pour SQL Server dans le fichier pom.xml :


<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>8.4.1.jre8</version>
</dependency>

Si cette version pose des problèmes, essayez une autre comme 7.4.1.jre8.

Pour utiliser la source de données esclave dans votre code, appliquez l'annotation @DataSource aux classes ou méthodes appropriées :


@DataSource(value = DataSourceType.SLAVE)
public List<Utilisateur> obtenirUtilisateurs() {
    // Logique pour interroger la base de données esclave
    return utilisateurMapper.selectList(null);
}

Vérifiez la connectivité réseau en testant le port avec des outils comme telnet ou Test-NetConnection dans PowerShell. Configurez le pare-feu pour autoriser les connexions entrantes si nécessaire.

En alternative, une connxeion JDBC directe peut être utilisée pour le débogage :


try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    Connection lien = DriverManager.getConnection(
        "jdbc:sqlserver://hote:1433;databaseName=base_donnees", "utilisateur", "mot_passe");
    Statement requete = lien.createStatement();
    ResultSet donnees = requete.executeQuery("SELECT colonne FROM table_exemple");
    while (donnees.next()) {
        String valeur = donnees.getString("colonne");
    }
    lien.close();
} catch (ClassNotFoundException | SQLException e) {
    e.printStackTrace();
}

Étiquettes: ruoyi SQL Server druid Spring Boot Java

Publié le 22 juillet à 01h51