Springboot项目Web环境引入Mybatis逆向工程MBG
Springboot项目Web环境引入Mybatis的逆向工程能够很大程度上减轻我们的工作量,既不用手动创建数量繁多的JavaBean,还不用对单表CRUD编写Mapper接口和映射文件,生成的Example文件对我们的单表查询有很大帮助,因此学会MBG(Mybatis Generator)还是很有必要的。
一 POM文件依赖管理和插件构建
首先需要一个Springboot的工程,该工程的POM文件至少需要Mybatis的依赖。
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
当然,Mybatis的Springboot-Starter也可以,它包含上述依赖。
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
然后,在POM文件的标签中,添加MBG的插件,代码如下:
<!-- 具体插件, 逆向工程的操作是以构建过程中插件形式出现的 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.3</version>
<!-- 插件的依赖 -->
<dependencies>
<!-- 逆向工程的核心依赖 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.2</version>
</dependency>
<!-- MySQL 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.8</version>
</dependency>
</dependencies>
</plugin>
二 编写generatorConfig.xml文件
该文件放置在resource根目录下:
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>
<!-- 引用外部配置文件 -->
<!--<properties resource="db.properties"/>-->
<!--
在MBG工作的时候,需要额外加载的依赖包location属性指明加载jar/zip包的全路径 -->
<!--
<classPathEntry location="com.hebin.crowd.mapper.F:\.m2\repository\mysql\mysql-connector-java\5.1.38\mysql-connector-java-5.1.38.jar"/>
-->
<!--
id:必选,上下文id,用于在生成错误时提示
targetRuntime:如果设置为MyBatis3,会自动生成Example相关的代码,如果不需要可以设置为MyBatis3Simple
-MyBatis3:默认的值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample;
-MyBatis3Simple:类似MyBatis3,只是不生成XXXBySample;
defaultModelType:指定生成对象的样式设置为flat,目的是只使一个表生成一个实体类。 当没有复杂的继承的时候,使用比较方便。选项如下
-conditional:类似hierarchical;
-flat:所有内容(主键,blob)等全部生成在一个对象中;
-hierarchical:主键生成一个XXKey对象(key class),Blob等单独生成一个对象,其他简单属性在一个对象中(record class)
-->
<!--<context id="tables" targetRuntime="MyBatis3" defaultModelType="flat">-->
<context id="tables" targetRuntime="MyBatis3">
<!-- beginningDelimiter/endingDelimiter: 指明数据库的用于标记数据库对象名的符号,比如ORACLE是双引号,MYSQL默认是`反引号 -->
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
<!-- 生成的Java文件的编码 -->
<property name="javaFileEncoding" value="UTF-8"/>
<!-- 格式化java代码
<property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
-->
<!-- 格式化XML代码
<property name="xmlFormatter"