Exemple d'environnement: Eclipse + Springboot + Mybatis + Mysql
Premièrement, pom.xml introduit des dépendances liées
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
Deuxièmement, testez la table de la base de données
CREATE TABLE `m_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`sex` varchar(5) DEFAULT NULL,
`address` varchar(100) DEFAULT NULL,
`birthday` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
CREATE TABLE `student` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(200) COLLATE utf8_bin DEFAULT NULL,
`age` tinyint(3) unsigned DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Troisièmement, configuration de la connexion à la base de données (application.properties)
spring.datasource.driverClassName= com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatisdemo?characterEncoding=utf8&serverTimezone=UTC
spring.datasource.username= root
spring.datasource.password= root
Il convient de noter qu'il peut y avoir deux types de fichiers de configuration dans springboot, l'un est .properties et l'autre est .yml. La priorité de .properties est supérieure à celle de yml. Pendant le processus de chargement, chargez d'abord .yml, puis chargez .properties. S'il y a la même configuration de propriété, ce dernier écrasera la première.
Quatrièmement, la configuration de generatorConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除所有自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatisdemo?serverTimezone=UTC"
userId="root"
password="root">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- entity存放位置 -->
<javaModelGenerator targetPackage="com.hsw.sps.entity" targetProject="SST/src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- mapper存放位置 -->
<sqlMapGenerator targetPackage="com.hsw.sps.dao" targetProject="SST/src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- xml文件存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.hsw.sps.dao" targetProject="SST/src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<table tableName="m_user" domainObjectName="User"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"/>
</context>
</generatorConfiguration>
Cinq, eclipse installe le plug-in du générateur Mybatis
Six, exécutez generatorConfig.xml, cliquez avec le bouton droit de la souris et sélectionnez Exécuter en tant que> Exécuter Mybatis Generator
Sept, résultats en cours
MyBatis Generator Started...
Buildfile: H:\workspace\.metadata\.plugins\org.mybatis.generator.eclipse.ui\.generatedAntScripts\SST-generatorConfig.xml.xml
17:06:27.322 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.eclipse.ui.ant.logging.AntLogFactory - Logging initialized using 'org.mybatis.generator.eclipse.ui.ant.logging.slf4j.Slf4jLoggingLogFactory@66aa684d' adapter.
17:06:27.337 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.logging.LogFactory - Logging initialized using 'org.mybatis.generator.eclipse.ui.ant.logging.AntLogFactory@2e2bf5b8' adapter.
Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
17:06:27.772 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Retrieving column information for table "m_user"
17:06:27.866 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "id", data type 4, in table "mybatisdemo..m_user"
17:06:27.866 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "username", data type 12, in table "mybatisdemo..m_user"
17:06:27.867 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "sex", data type 12, in table "mybatisdemo..m_user"
17:06:27.867 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "address", data type 12, in table "mybatisdemo..m_user"
17:06:27.867 [Worker-61: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "birthday", data type 93, in table "mybatisdemo..m_user"
BUILD SUCCESSFUL
MyBatis Generator Finished
ps: cela indique que com.mysql.jdbc.Driver est obsolète et que com.mysql.cj.jdbc.Driver doit être utilisé
Une fois l'exécution réussie, vous pouvez voir que l'entité, le mappeur et le fichier XML de la table associée ont été créés. Si le package associé est exécuté avec succès mais n'est pas créé, le projet sera actualisé. Si vous exécutez à nouveau mybatis genrtator à ce il continuera à être créé. Ajoutez du contenu au fichier, c'est-à-dire que si vous souhaitez le régénérer, vous devez supprimer le fichier concerné et le régénérer.
Huitièmement, dans le fichier generatorConfig.xml tout à l'heure, seul le mappage associé de la table utilisateur est configuré, de sorte que les fichiers associés de la table utilisateur sont générés. Ensuite, il y a une table étudiant. Dois-je réécrire la configuration de la table étudiant ? S'il y a des centaines de tables dans la table de base de données, doivent-elles toutes être définies manuellement? La réponse est non, le générateur mybatis peut générer automatiquement toutes les tables de la bibliothèque, la configuration clé est la suivante
<table schema="mybatisdemo" tableName="%"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"/>
Tous les fichiers de configuration
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除所有自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mybatisdemo?serverTimezone=UTC"
userId="root"
password="root">
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- entity存放位置 -->
<javaModelGenerator targetPackage="com.hsw.sps.entity" targetProject="SST/src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- mapper存放位置 -->
<sqlMapGenerator targetPackage="com.hsw.sps.dao" targetProject="SST/src/main/java">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- xml文件存放位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.hsw.sps.dao" targetProject="SST/src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--<table tableName="m_user" domainObjectName="User"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"/>-->
<table schema="mybatisdemo" tableName="%"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"/>
</context>
</generatorConfiguration>
Après avoir supprimé le fichier généré dans le sens inverse, exécutez-le à nouveau et obtenez le résultat suivant
MyBatis Generator Started...
Buildfile: H:\workspace\.metadata\.plugins\org.mybatis.generator.eclipse.ui\.generatedAntScripts\SST-generatorConfig.xml.xml
18:28:25.319 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.eclipse.ui.ant.logging.AntLogFactory - Logging initialized using 'org.mybatis.generator.eclipse.ui.ant.logging.slf4j.Slf4jLoggingLogFactory@6dadd05b' adapter.
18:28:25.333 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.logging.LogFactory - Logging initialized using 'org.mybatis.generator.eclipse.ui.ant.logging.AntLogFactory@49970f30' adapter.
18:28:25.723 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Retrieving column information for table "mybatisdemo.%"
18:28:25.796 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "id", data type 4, in table "mybatisdemo..m_user"
18:28:25.796 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "username", data type 12, in table "mybatisdemo..m_user"
18:28:25.796 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "sex", data type 12, in table "mybatisdemo..m_user"
18:28:25.796 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "address", data type 12, in table "mybatisdemo..m_user"
18:28:25.796 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "birthday", data type 93, in table "mybatisdemo..m_user"
18:28:25.797 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "id", data type 4, in table "mybatisdemo..student"
18:28:25.797 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "name", data type 12, in table "mybatisdemo..student"
18:28:25.797 [Worker-10: Launching SST-generatorConfig.xml] DEBUG org.mybatis.generator.internal.db.DatabaseIntrospector - Found column "age", data type -6, in table "mybatisdemo..student"
BUILD SUCCESSFUL
MyBatis Generator Finished
Comme vous pouvez le voir, le générateur mybatis a automatiquement analysé toutes les tables de la base de données actuelle et généré les fichiers associés à l'envers.