Intégration de MyBatis dans un projet Spring Boot

Configuration et utilisation de MyBatis avec Spring Boot

Pour intégrer MyBatis dans une application Spring Boot, assurez-vous d'abord que votre environnement de base de données est opérationnel. Par exemple, utilisez un serveur MySQL accessible via des outils comme Navicat pour valider la connexion.

Initialisation du projet avec les dépendances nécessaires

Créez un nouveau projet Spring Boot en incluant les dépendances Spring Web et JDBC. Ajoutez également le connecteur MySQL et, optionnellement, Lombok pour simplifier le code.

Dans le fichier pom.xml, intégrez la dépendance du pool de connexions Druid :


<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.15</version>
</dependency>

Configurez les propriétés de base de données dans application.properties :


server.port=8080

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://192.168.1.100:3306/magasin_db?useSSL=false&characterEncoding=UTF-8
spring.datasource.username=admin
spring.datasource.password=secret

Définition des composants métier

Créez une classe d'entité pour représenter les données :


import lombok.Data;
import java.io.Serializable;

@Data
public class BonReduction implements Serializable {

    private Long identifiant;
    private String categorie;
    private Integer montant;
}

Implémentez un contrôleur REST pour exposer les endpoints :


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;

@RestController
public class BonReductionController {

    private final BonReductionService service;

    public BonReductionController(BonReductionService service) {
        this.service = service;
    }

    @GetMapping("/api/bons")
    public List<BonReduction> obtenirListe() {
        return service.recupererTous();
    }
}

Définissez une interface de service et son implémentation :


public interface BonReductionService {
    List<BonReduction> recupererTous();
}

@Service
public class BonReductionServiceImpl implements BonReductionService {

    private final BonReductionMapper mapper;

    public BonReductionServiceImpl(BonReductionMapper mapper) {
        this.mapper = mapper;
    }

    @Override
    public List<BonReduction> recupererTous() {
        return mapper.selectionnerTous();
    }
}

Créez l'interface du mapper MyBatis :


public interface BonReductionMapper {
    List<BonReduction> selectionnerTous();
}

Gestion des requêtes SQL avec MyBatis

Pour associer le mapper aux requêtes SQL, utilisez un fichier XML. Placez-le dans le répertoire src/main/resources/mapper en respectant la structure de packages :


<?xml version="1.0" encoding="UTF-8"?>

<mapper namespace="com.example.app.mapper.BonReductionMapper">

    <select id="selectionnerTous" resultType="com.example.app.entity.BonReduction">
        SELECT id AS identifiant, categorie, montant FROM bons_reduction
    </select>

</mapper>

Pour éviter les problèmes de compilation, si les fichiers XML sont placés dans src/main/java, ajoutez cette configuration dans pom.xml :


<build>
    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.xml</include>
            </includes>
        </resource>
    </resources>
</build>

Annotez la classe principale de l'applicatoin avec @MapperScan pour spécifier le package des mappers :


import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.example.app.mapper")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

Testez l'intégration en démarrant l'application et en appelant l'endpoint /api/bons. Vérifiez les logs pour confirmer l'exécution des requêtes SQL.

Considérations sur les fichiers XML

Il est recommandé de stocker les fichiers mapper XML dans src/main/resources pour éviter des erreurs de compilation. Assurez-vous que le chemin du fichier correspond au package du mapper Java. En cas d'erreur de liaison, vérifiez la cohérence des noms de méthodes et la configuration du build.

Pour les projets nécessitant des opérations CRUD simples, l'utilisation d'un mapper commun comme MyBatis-Plus peut simplifier le développement en éliminant le besoin de fichiers XML.

Étiquettes: spring-boot MyBatis druid Maven Java

Publié le 13 juin à 23h03