springboot配置mybatis代码生成器mybatis generator快速生成实体类POJO,mapper接口以及mapper接口映射文件

MyBatis Generator是 MyBatis的代码生成器。根据配置文件为所有版本的 MyBatis 生成代码。它只需要很少量的简单配置就可以完成大量的数据库表到Java对象的生成工作以及生成Mapper接口文件,Mapper XML配置文件的生成,拥有零出错和速度快的优点,让开发人员解放出来更专注于业务逻辑的开发。避免程序员繁琐配置XML文件和重复生成对象操作

一. MyBatis Generator

1. MyBatis Generator好处

1)快速,项目配置完只需一个命令或者点击一下generate就可以创建完成
2)简单,只需要简单少量的配置信息
3)高效,如果数据库表字段非常多,使用MyBatis Generator可以提高开发效率

2. MyBatis Generator缺点

1)使用MyBatis Generator可能会由于不使用导致我们遗忘一些技术点
2)MyBatis Generator生成的代码包含了很多不需要的代码和方法,给我们带来了不便

3. MyBatis Generator主要功能

1)生成与数据库表对应的实体类,如User
2)生成实体类对应的操作数据库接口方法,如UserMapper
3)生成UserMapper接口方法的XML映射文件,如UserMapper.XML

二. SpringBoot配置使用MyBatis Generator的步骤

1. 配置MyBatis Generator前的准备工作

编译器环境:IDEA 2020.3
JDK版本信息:JDK1.8
数据库版本信息:mysql8.0
SpringBoot项目版本信息:2.3.7.RELEASE

2.配置pom.xml

我们需要在pom.xml中配置mybatis-spring-boot-starter的mybatis依赖以及maven下mybatis-generator的生成插件,下面依赖或插件前加注解的是需要导入的,导入后需要重新下载依赖,pom.xml配置代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.1</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.hebeu</groupId>
    <artifactId>miniprogram</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>miniprogram</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <!--        mybatis持久层框架-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
<!--mybatis-generator-maven-plugin maven下mybatis-generator的生成插件-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.4.0</version>
                <dependencies>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.4.0</version>
                    </dependency>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>${mysql.version}</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>mybatis generator</id>
                        <phase>package</phase>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!--允许移动生成的文件-->
                    <verbose>true</verbose>
                    <!--允许自动覆盖的文件-->
                    <overwrite>true</overwrite>
                    <configurationFile>
                        src/main/resources/generatorConfig.xml
                    </configurationFile>

                </configuration>
            </plugin>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.3.7.RELEASE</version>
                <configuration>
                    <mainClass>com.hebeu.MiniprogramApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

3.在src/main/resources下新建generatorConfig.xml

在src/main/resources下新建的generatorConfig.xml文件是mybatis-generator的核心配置文件,该配置文件告诉mybatis-generator:

1)如何连接到数据库
2)要生成什么对象,以及如何生成它们
3)应该使用哪些表来生成对象

generatorConfig.xml路径如下:
在这里插入图片描述
如果想了解xml详细配置参考MyBatis 生成器中文官网
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">
        <!--不再追加xml内容-->
        <plugin type="org.mybatis.generator.plugins.UnmergeableXmlMappersPlugin"/>

        <!--有一定的顺序,配置实体类及方法注释-->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>

        <!--        数据库连接信息driverClass;connectionURL等等-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/note?characterEncoding=utf-8&amp;useSSL=false&amp;serverTimezone=Asia/Shanghai"
                        userId="root"
                        password="zhang2001">
            <property name="nullCatalogMeansCurrent" value="true"/>
        </jdbcConnection>

        <javaTypeResolver>
            <property name="forceBigDecimals" value="false"/>
        </javaTypeResolver>

 <!-- targetpakage是即将生成的目录,targetProject是对应的前缀目录。可根据自己需求生到对应目录。下次运行会直接默认覆盖原来位置的文件 -->
       <!-- 生成实体类的包名和位置  User -->
        <javaModelGenerator targetPackage="com.hebeu.pojo" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- 生成映射文件的包名和位置  mapper.xml -->
        <sqlMapGenerator targetPackage="mappers" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>

        <!-- 生成DAO的包名和位置  mapper接口 -->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.hebeu.dao" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>

 <!--user是我数据库中的表名,User是生成的类名,我的映射类为User,映射接口UserMapper, 映射文件为UserMapper.xml,可以添加多个表,里面的几个配置大概意思就是是否允许生成example文件和支持selectByExample-->
        <!--        数据库表生成后配置-->
        <table tableName="user" domainObjectName="User" enableCountByExample="false"
               enableDeleteByExample="false" enableSelectByExample="false" enableUpdateByExample="false"/>
    </context>
</generatorConfiguration>

4.运行插件生成

点击右侧maven栏,找到Plugins的mybatis-generator:generate,双击运行插件,插件位置如下图:
在这里插入图片描述

运行后生成的文件,如下图所示:

在这里插入图片描述
到这里已经配置运行完成,mybatis-generator的配置过程中可能会遇到许多坑,可以在评论区留言一起解决

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值