官网地址: MyBatis Generator Core – Introduction to MyBatis Generator
MyBatis Generator 生成的文件包含三类:
(1)Model实体文件(PO),一个数据库表对应生成一个 Model 实体;
(2)Mapper接口文件,数据数操作方法都在此接口中定义;
(3)Mapper XML配置文件
建议做项目时单独创建一个项目用于生成代码,不建议直接在开发项目上使用MBG。容易把之前的覆盖 掉。
1、添加依赖:
在项目pom.xml中的里添加:
<!--非必要-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
在中添加:
<!-- Mybatis generator Maven插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<!--添加一个MySQL驱动依赖-->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
</dependencies>
<!--配置-->
<configuration>
<!--指定Mybatis generator 生成配置文件-->
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<!--是否覆盖原来生成的文件 注意:MBG将始终合并和覆盖XML文件-->
<overwrite>true</overwrite>
<!--如果为 true,则 MBG 会将进度消息写入构建日志。-->
<verbose>true</verbose>
</configuration>
</plugin>
2、编写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">
<!--参考官方配置文档 https://mybatis.org/generator/configreference/xmlconfig.html-->
<generatorConfiguration>
<context id="MySQLTables" targetRuntime="MyBatis3" defaultModelType="flat">
<!-- 注释相关设置
mybatis generator 默认自动生成的注释没什么实际作用,而且还增加了代码量-->
<commentGenerator>
<!-- 是否取消自动生成时的注释 -->
<property name="suppressAllComments" value="true"/>
<!-- 是否取消在注释中加上时间 -->
<property name="suppressDate" value="true"/>
</commentGenerator>
<!-- 链接数据库的配置 -->
<!--mysql 5.x-->
<!-- <jdbcConnection driverClass="com.mysql.jdbc.Driver"-->
<!-- connectionURL='jdbc:mysql://127.0.0.1:3306/base_admin?serverTimezone=GMT%2b8'-->
<!-- userId="root"-->
<!-- password="root"/>-->
<!--mysql 8.0-->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3306/base_admin?serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&allowMultiQueries=true"
userId="root"
password="root">
<!--避免 Mybatis Generator 生成文件的时候错误使用了其它数据库的同名数据表
参考 https://www.cnblogs.com/coderLeo/p/12770673.html-->
<!--如果要生成这个数据库的全部表一定要加这个要不然就把你其他数据库里所有表都生成-->
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
<!-- 生成实体类的设置 po\model-->
<!-- targetPackage 生成代码的目标目录 -->
<!-- targetProject 目录所属位置 -->
<javaModelGenerator targetPackage="com.gx.demomybatis.model" targetProject="src/main/java">
<!-- 在targetPackage的基础上根据schema再生成一层package 默认false -->
<property name="enableSubPackages" value="true"/>
<!-- 是否在get方法中 对String类型的字段做空的判断 -->
<property name="trimStrings" value="true"/>
<!-- 是否生成一个包含所有字段的构造器 -->
<property name="constructorBased" value="false"/>
<!-- 是否创建一个不可变类-->
<property name="immutable" value="false"/>
</javaModelGenerator>
<!--关于生成映射文件的设置 路径targetProject/targetPackage-->
<sqlMapGenerator targetPackage="mapper2" targetProject="src/main/resources">
<!-- 在targetPackage的基础上根据schema再生成一层package 默认false -->
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!--关于生成dao层的设置 dao mapper-->
<javaClientGenerator type="mapper" targetPackage="com.gx.demomybatis.dao" targetProject="src/main/java">
<!--同上-->
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--需要生成的代码对应的表名 可以存在多个table元素
tableName 数据库表名 %表示全部 domainObjectName实体类名称 xxxExample 是否生成Example类-->
<!--生成多个-->
<table tableName="%"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false">
<!-- 配置主键column 主键列名 ; identity 指定主键是否自增-->
<generatedKey column="id" sqlStatement="Mysql" identity="true"/>
</table>
<!-- <table tableName="sys_role"-->
<!-- domainObjectName="SysRole"-->
<!-- enableCountByExample="false"-->
<!-- enableUpdateByExample="false"-->
<!-- enableDeleteByExample="false"-->
<!-- enableSelectByExample="false"-->
<!-- selectByExampleQueryId="false">-->
<!-- <!– 配置主键column 主键列名 ; identity 指定主键是否自增–>-->
<!-- <generatedKey column="id" sqlStatement="Mysql" identity="true"/>-->
<!-- </table>-->
<!-- <table tableName="sys_department"-->
<!-- domainObjectName="SysDepartment"-->
<!-- enableCountByExample="false"-->
<!-- enableUpdateByExample="false"-->
<!-- enableDeleteByExample="false"-->
<!-- enableSelectByExample="false"-->
<!-- selectByExampleQueryId="false">-->
<!-- <!– 配置主键column 主键列名 ; identity 指定主键是否自增–>-->
<!-- <generatedKey column="id" sqlStatement="Mysql" identity="true"/>-->
<!-- </table>-->
</context>
</generatorConfiguration>
3、启动
然后在你指定的包里面就可以看见自动生成的文件了: