Uso simple del generador Mybatis

Entorno de muestra: Eclipse + Springboot + Mybatis + Mysql

Uno, pom.xml introduce dependencias relacionadas

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

En segundo lugar, pruebe la tabla de la base de datos

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;

Tres, configuración de la conexión de la base de datos (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

Cabe señalar que puede haber dos tipos de archivos de configuración en springboot, uno es .properties y el otro es .yml. La prioridad de .properties es mayor que la de yml. Durante el proceso de carga, cargue primero .yml y luego cargue .properties. Si tiene la misma configuración de propiedad, este último sobrescribirá a la primera.

Cuarto, la configuración 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>

Cinco, eclipse instala el complemento del generador Mybatis

Seis, ejecute generatorConfig.xml, haga clic con el botón derecho y seleccione Ejecutar como> Ejecutar Mybatis Generator

Siete, resultados en ejecución

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: Esto indica que com.mysql.jdbc.Driver ha quedado obsoleto y que debe usarse com.mysql.cj.jdbc.Driver

Una vez que la ejecución es exitosa, puede ver que se han creado la entidad, el asignador y el xml de la tabla relacionada. Si el paquete relacionado se ejecuta correctamente pero no se crea, el proyecto se actualizará. Si ejecuta mybatis genrtator nuevamente en este tiempo, se seguirá creando. Agregue contenido al archivo, es decir, si desea volver a generarlo, debe eliminar el archivo correspondiente y volver a generarlo.

Ocho, en el generatorConfig.xml justo ahora, solo se configura el mapeo relacionado de la tabla de usuarios, por lo que se generan los archivos relacionados de la tabla de usuarios. Luego hay una tabla de estudiantes. ¿Necesito reescribir la configuración de la tabla de estudiantes? ? Si hay cientos de tablas en la tabla de la base de datos, ¿es necesario definirlas todas manualmente? La respuesta es no, el generador mybatis puede generar automáticamente todas las tablas en la biblioteca, la configuración clave es la siguiente

<table schema="mybatisdemo"  tableName="%"  
                   enableCountByExample="false"  
                   enableUpdateByExample="false"   
                   enableDeleteByExample="false" 
                   enableSelectByExample="false"  
                   selectByExampleQueryId="false"/>

Todos los archivos de configuración

<?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>

Después de eliminar el archivo generado en la dirección inversa, ejecútelo nuevamente y obtenga el siguiente resultado

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

Como puede ver, el generador mybatis ha escaneado automáticamente todas las tablas en la base de datos actual y ha generado archivos relacionados a la inversa.

 

Supongo que te gusta

Origin blog.csdn.net/bai_ye_/article/details/107637626
Recomendado
Clasificación