mybatis-generator 详细配置及使用,爬坑记录

Posted xpwi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis-generator 详细配置及使用,爬坑记录相关的知识,希望对你有一定的参考价值。

mybatis-generator 详细配置及使用,爬坑记录

提示:如果不成功一定是项目路径和 数据库配置出问题,本篇基于 mysql 8.0.13,调试没有问题。

如果失败,建议使用相同的项目结构,包名,进行重试,博主也是多次调试,才成功。一些常见问题,看报错提示信息是可以看懂的,加油。

整个项目的源代码,最后,也会给出下载链接。

这是根据数据库,生成后的项目结构:

技术分享图片

一、简介:

mybatis-geneator 是一款 mybatis 自动代码生成工具,可以通过配置,快速生成 mapper 和 xml 文件。

二、配置方法:

(1)在项目的 pom.xml 文件中添加插件配置

详细的 pom.xml 配置:

<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.7</version>

    <dependencies>
        <dependency>
          <groupId>org.mybatis.generator</groupId>
          <artifactId>mybatis-generator-core</artifactId>
          <version>1.3.7</version>
        </dependency>

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

     <executions>
        <execution>
          <id>mybatis generator</id>
          <phase>package</phase>
          <goals>
            <goal>generate</goal>
          </goals>
          <configuration>
            <!--允许移动生成的文件-->
            <verbose>true</verbose>
            <!--允许自动覆盖文件-->
            <overwrite>true</overwrite>
            <configurationFile>
              src/main/resources/generatorConfig.xml
            </configurationFile>
       </configuration>
     </execution>
     </executions>


</plugin>

(2)根据自己配置的文件路径及名称,创建相应 generatorConfig.xml 文件,位置如下图:

技术分享图片

(3)先手动创建一些目录,在配置的时候回有提示,大大降低出错概率,整体目录结构:

技术分享图片

三、创建 MySQL 数据库,创建 2 两个表:

之前介绍过多次命令行创建数据库表了,查看 MySQL - 最经典的 命令行操作数据库 + 表(增删改查实例)

这次使用 Navicat for MySQL,如果没有安装请参考:Navicat for MySQL 最新版安装与破解 + 报错解决办法

(1)建立连接,创建数据库:

技术分享图片

(2)数据库名,选择编码:

技术分享图片

(3)新建表:
技术分享图片

(4)填写表信息:

主键:
技术分享图片

其他:
技术分享图片

表名为 user_info

(5)插入一条信息:
技术分享图片

(6)细心的你可能发现了没有 upwd 存密码的字段,我们这里放在另外一张表上,新建表 user_pwd:
技术分享图片

四、编辑 mybatis-generator.xml 文件:

(重要!)
(请详细看注释!自行修改自己的配置信息)

修改目录请自行对应,可放大查看:

技术分享图片

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:起个名字 -->
    <!-- targetRuntime:设置生成的文件适用于那个 mybatis 版本 -->
    <context id="default" targetRuntime="MyBatis3">


        <!--jdbc的数据库连接-->
        <!--这里是以变量的形式定义,具体的值在 application.properties 文件中-->
        <!--jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://127.0.0.1:3306/miaosha?serverTimezone=UTC"
                        userId="root"
                        password="xiaopengwei">
        </jdbcConnection>

        <!-- targetPackage:生成的实体类所在的包 -->
        <!-- targetProject:生成的实体类所在的硬盘位置 -->
        <!-- DataObject 类存放位置 -->
        <javaModelGenerator targetPackage="com.miaoshapro.dataobject"
                            targetProject=".srcmainjava">
            <!-- 是否允许子包 -->
            <property name="enableSubPackages" value="false" />
            <!-- 是否对modal添加构造函数 -->
            <property name="constructorBased" value="true" />
            <!-- 是否清理从数据库中查询出的字符串左右两边的空白字符 -->
            <property name="trimStrings" value="true" />
            <!-- 建立modal对象是否不可改变 即生成的modal对象不会有setter方法,只有构造方法 -->
            <property name="immutable" value="false" />
        </javaModelGenerator>

        <!-- targetPackage 和 targetProject:生成的 mapper 文件的包和位置 -->
        <sqlMapGenerator targetPackage="mapping"
                         targetProject=".srcmain
esources">
            <!-- 针对数据库的一个配置,是否把 schema 作为字包名 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>

        <!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.miaoshapro.dao" targetProject=".srcmainjava">
            <!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 -->
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>

        <!--生成对应表及类名-->
        <table tableName="user_info" domainObjectName="UserDO">
        </table>
        <table tableName="user_pwd" domainObjectName="UserPwdDO">
        </table>
    </context>
</generatorConfiguration>

五、执行 mybatis-generator 插件

(1)打开配置:
技术分享图片

(2)点击 +,选择 Maven:
技术分享图片

(3)输入信息,命令:
技术分享图片

(4)选中刚才创建的名称,点击执行:
技术分享图片

六、运行结果:

(1):
技术分享图片

(2):
技术分享图片

(3):
技术分享图片

(4):
技术分享图片

以上是关于mybatis-generator 详细配置及使用,爬坑记录的主要内容,如果未能解决你的问题,请参考以下文章

初识MyBatis-Generator

IEDA 使用mybatis-generator插件自动生成代码及遇到的问题

Mybatis-generator,自动生成文件.问题及解决

mybatis-generator映射文件自动生成

如何利用mybatis-generator生成配置文件

Mybatis-Generator插件的使用与Spring集成Mybatis的配置