Configuration du générateur MyBatis

MyBatis Generator est un outil puissant pour générer automatiquement des classes Java, des interfaces et des fichiers XML de mapping à partir d'une base de données. Voici comment le configurer dans un projet Maven.

1. Ajout du plugin dans le fichier pom.xml

Incluez le plugin MyBatis Generator dans la section <plugins> :

<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.7</version>
</plugin>

2. Exécution de la commande initiale

Lancez mvn mybatis-generator:generate dans le terminal. Une erreur signale l'absence du fichier de configuraton.

3. Création du fichier generatorConfig.xml

Placez le fichier dans le répertoire src/main/resources. Copiez le modèle fourni sur le site officiel, puis paramétrez-le. Le générateur nécessite un pilote JDBC local pour se connecter à la base de données et extraire le schéma. Voici une version finalisée du fichier :

<context id="MaBase" targetRuntime="MyBatis3">
    <!-- Permet la réécriture des fichiers XML lors de re-génération -->
    <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin" />

    <!-- Supprime tous les commentaires dans les fichiers générés -->
    <commentGenerator>
        <property name="suppressAllComments" value="true" />
    </commentGenerator>

    <!-- Connexion à la base de données -->
    <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                    connectionURL="jdbc:mysql://localhost:3306/bibliotheque?useSSL=false&amp;serverTimezone=UTC"
                    userId="root"
                    password="monMotDePasse">
    </jdbcConnection>

    <javaTypeResolver>
        <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>

    <!-- Générateur des classes d'entités -->
    <javaModelGenerator targetPackage="com.monprojet.entites" targetProject="src/main/java">
        <property name="enableSubPackages" value="true" />
        <property name="trimStrings" value="true" />
    </javaModelGenerator>

    <!-- Générateur des fichiers XML de mapping -->
    <sqlMapGenerator targetPackage="com.monprojet.mappers" targetProject="src/main/resources">
        <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>

    <!-- Générateur des interfaces Mapper -->
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.monprojet.dao" targetProject="src/main/java">
        <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

    <!-- Table à mapper -->
    <table tableName="livres" domainObjectName="Livre"
           enableCountByExample="false" enableDeleteByExample="false"
           enableSelectByExample="false" enableUpdateByExample="false">
    </table>

</context>

</details>### 4. Activation de l'écrasement des fichiers

Pour que chaque génération remplace les fichiers existants, ajoutez la configuration suivante au plugin dans le `pom.xml` :


### 5. Résolution d'une erreur fréquente

Après avoir exécuté `mvn mybatis-generator:generate`, une erreur peut survenir avec MySQL 8+ concernant le plugin d'authentification. Voici une solution :

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'monMotDePasse';


Cette commande force MySQL à utiliser l'ancien plugin `mysql_native_password` au lieu de `caching_sha2_password`.

### 6. Génération réussie

Une fois ces étapes effectuées, la commande `mvn mybatis-generator:generate` produit les fichiers de code automatiquement.

Étiquettes: MyBatis Generator Maven JDBC MySQL génération de code

Publié le 26 juillet à 12h49