Deje de escribir clases de entidades y mapeadores, use la herramienta de generación de código MyBatis para generar con un solo clic.

Herramienta de generación de código MyBatis

En el proceso de usar MyBatis, a menudo necesitamos escribir clases de entidad y código CRUD de tabla única.Cuando no hay muchas tablas, puede estar bien, pero una vez que hay demasiadas tablas, será bastante problemático. Afortunadamente, el generador de código oficial MyBatis (MyBatis Generator) puede ayudarnos a resolver este problema. MyBatis Generator (MBG) puede generar directamente clases de entidad, códigos CRUD de tabla única y archivos mapper.xml a través de tablas de base de datos. Echemos un vistazo a cómo utilizar MyBatis Generator.


Utilice MyBatis Generator

1. Agregar dependencias

El uso de MBG se basa principalmente en las dos dependencias siguientes, una es la dependencia de arranque de primavera de mybatis y la dependencia de MyBatis Generator. Si solo desea utilizar el generador de código MyBatis, ni siquiera puede confiar en mybatis-spring-boot-starter

    <!--SpringBoot整合MyBatis-->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.0</version>
    </dependency>

    <!-- MyBatis 生成器 -->
    <dependency>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-core</artifactId>
        <version>1.4.0</version>
    </dependency>

    <!--Mysql数据库驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>

2. Después de agregar una dependencia, debemos realizar la configuración relacionada

Configure la fuente de datos y la ruta del archivo MyBatis mapper.xml en application.yml

#数据库连接
spring.datasource.url=jdbc:mysql://192.168.91.128:3306/mytest?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#指定本地mapper.xml文件的存放位置
mybatis.mapper-locations=classpath:dao/*.xml

3. Agregue la anotación @MapperScan a la clase de inicio y especifique la ruta de escaneo

La ruta puede ser tan larga como contenga su interfaz Mapper. Cuanto menor sea el rango, mayor será la eficiencia.

@MapperScan("com.example.demo2")
public class Demo2Application {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(Demo2Application.class, args);
    }

}

4. Mybatis está configurado arriba, y luego podemos escribir el archivo de configuración xml del generador de código en el directorio de recursos.

A continuación se muestra un archivo xml generador de código que escribí

El nombre es: generatorConfig.xml

El contenido es el siguiente

<?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:标识
            targetRuntime: MyBatis3Simple 只会生成基本的CRUD操作

    -->
    <context id="DB2Tables" targetRuntime="MyBatis3Simple">

        <!--commentGenerator:注释生成策略-->
        <commentGenerator>
            <!--suppressAllComments:是否阻止注释生成-->
            <property name="suppressAllComments" value="true"/>
            <!--suppressDate:是否阻止时间戳生成-->
            <property name="suppressDate" value="true"/>
        </commentGenerator>

        <!--jdbcConnection:数据库的链接属性-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mytest?useUnicode=true&amp;characterEncoding=utf8"
                        userId="root"
                        password="root">
            <!--解决mysql驱动升级到8.0后不生成指定数据库代码的问题-->
            <property name="nullCatalogMeansCurrent" value="true" />
        </jdbcConnection>

        <!--javaTypeResolver:java类型转换策略-->
        <javaTypeResolver >
            <!-- forceBigDecimals
                 false:如果数据库中的字段类型为numeric或者decimal,在代码生成的时候根据数据库中设定的长度自动选择java类型进行转换
                 true:直接使用java.math.BigDecimal类型-->
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!--domain生成策略;targetPackage:生成到哪个包下面,targetProject:生成到哪个项目目录下面-->
        <javaModelGenerator targetPackage="com.example.childdemo.model" targetProject="src/main/java">
            <!--<property name="enableSubPackages" value="true" />-->
            <!--表示是否修剪字符串(去掉空格-->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!--sqlMapGenerator:映射文件生成策略
               targetPackage:生成到哪个包下面,targetProject:生成到哪个项目目录下面
        -->
        <sqlMapGenerator targetPackage="com.example.childdemo.mapper"  targetProject="src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!--mapper接口生成策略
           type:ANNOTATEDMAPPER:注解的形式
                XMLMAPPER:xml映射的形式-->
        <javaClientGenerator type="ANNOTATEDMAPPER" targetPackage="com.example.childdemo.mapper"  targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!--指定要生成代码的表
                domainObjectName:设置表对应的domain实体类生成的名称
        -->
        <table tableName="productdir" domainObjectName="ProductDir"></table>

    </context>
</generatorConfiguration>`

5. Ejecute el generador de código Ejecutemos el generador de código a
través de archivos de configuración y codificación

Después de escribir el archivo de configuración, podemos escribir una clase para generar código y ejecutar el método principal directamente para generar todo el código. El código es el siguiente:

public class Generator {
    
    
    public static void main(String[] args) throws Exception {
    
    
        //MBG 执行过程中的警告信息
        List<String> warnings = new ArrayList<String>();
        //当生成的代码重复时,覆盖原代码
        boolean overwrite = true;
        //读取我们的 MBG 配置文件
        InputStream is = Generator.class.getResourceAsStream("/generatorConfig.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(is);
        is.close();
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        //创建 MBG
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        //执行生成代码
        myBatisGenerator.generate(null);
        //输出警告信息
        for (String warning : warnings) {
    
    
            System.out.println(warning);
        }
    }

}

Ejecutar el método principal nos ayudará a generar la clase de entidad correspondiente y la interfaz del mapeador.


Generador de código de ejecución del complemento Maven

Además de los métodos anteriores, también podemos ejecutar el generador de código a través del complemento Maven

Si usa el complemento de Maven, no es necesario que introduzca la dependencia mybatis-generator-core. Solo necesita introducir un complemento de Maven mybatis-generator-maven-plugin. Agregue el siguiente complemento al archivo pom:

             <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <!-- 输出详细信息 -->
                    <verbose>true</verbose>
                    <!-- 覆盖生成文件 -->
                    <overwrite>true</overwrite>
                    <!-- 定义配置文件 -->
                    <configurationFile>${
    
    basedir}/src/main/resources/generator-configuration.xml</configurationFile>
                </configuration>
                <executions>
                    <execution>
                        <id>MyBatis Generate</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>

                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.38</version>
                    </dependency>
                </dependencies>
            </plugin>

Una vez configurado el complemento, utilice el siguiente comando para ejecutar:

mvn mybatis-generator:generate

Nota: La versión del complemento debe corresponder a la versión de la base de datos conectada; de lo contrario, se informará un error

También podemos ejecutar directamente en la opción maven del compilador, de la siguiente manera

Inserte la descripción de la imagen aquí

Después de ejecutar, puede obtener el código correspondiente, de la siguiente manera

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_36551991/article/details/112440346
Recomendado
Clasificación