Mybatis Generator简称MBG(以下均以mbg代替Mybatis Generator),是Mybatis的一款插件,用来自动生成dao接口类、entity实体和xml映射文件。

我以前在学习mbg的时候,也是查找各种网络上的教程,但是很多教程都只是讲解mbg的基本使用,讲解得并不全面。举个例子:在对mbg进行配置的时候,我们要指明需要生成代码的表,如下:

<table tableName="dictionary_college" domainObjectName="College" />

这样,其实你在看了教程后只知道table标签有tableNamedomainObjectName两个属性,并不知道还有其他哪些属性可以配置,配置了可以产生什么样的效果,这就会造成你在使用mbg的时候,出现某种问题,无法找到对应的方法去解决它。

所以在讲解如何使用mbg之前,先贴几个连接。官网的教程永远是最全面的,你可在官网上查看每个标签能配置的所有属性,以及可以产生怎样的效果。而GitHub库中,有许多的issue,当你遇到问题时,如果查看官方文档无法解决,你可以去GitHub库中搜索issue,这也是一种解决问题的方法,不要只会用百度解决问题。

Mybatis Generator官方使用教程:http://www.mybatis.org/generator/

Mybatis Generator GitHub库:https://github.com/mybatis/generator

1、pom.xml配置

使用方式

使用mbg有6种方式:

  1. 直接在命令行中运行mbg的jar包
  2. 作为一个Ant任务来运行
  3. 作为一个Maven插件来运行
  4. 通过写Java代码来运行(基于xml配置)
  5. 通过写Java代码来运行(基于Java代码配置)
  6. 作为一个Eclipse功能来运行

因为现在基本所有java项目都会用到Maven,所以我只讲解如何在Maven中使用mbg。

基础配置

<build>
    <plugins>
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.7</version>
            <configuration>
                <!--指定配置文件位置-->
                <configurationFile>src/main/resources/mybatis/mybatis-generator-config.xml</configurationFile>
                <!--重复生成时是否覆盖文件-->
                <overwrite>true</overwrite>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>8.0.15</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

首先我们引入一个mbg的插件,此时(2019-4-14)mbg的maven插件最新版本是1.3.7(更新于2018-6-4)。建议读者在看到这篇文章时,自行到官网查看最新版本的插件。

<plugin>标签中有一个<configuration>标签,可以配置一些参数(所以参数请到官网查看)。

<configurationFile>用来指定mbg的配置文件路径

<overwrite>为true时,重复生成时旧文件将会被新文件覆盖,否则新文件将会以.1后缀命名。

因为需要连接数据库,所以还需要<dependency>标签指定jdbc驱动(也可以用<includeCompileDependencies><includeAllDependencies>标签代替,详见官网)

Last modification:November 14th, 2019 at 12:37 pm