Utilisation simple du générateur Mybatis

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.

 

Je suppose que tu aimes

Origine blog.csdn.net/bai_ye_/article/details/107637626
conseillé
Classement