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&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.