1. 准备工作(本文基于MySQL数据库)
创建一个数据库,并创建表一个表。此处我的数据库为: mp ,表为:employee
2. 创建一个SpringBoot项目,并在pom.xml文件中导入依赖
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<!-- 在控制台打印执行日志 -->
<verbose>true</verbose>
<!-- 重复生成时,是否覆盖之前的文件-->
<overwrite>true</overwrite>
<!-- 指定generatorConfig.xml文件的位置,注意别写错-->
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
</configuration>
<dependencies>
<!--MySQL依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<!--要与你们自己SpringBoot版本对应的mysql-connector版本相同-->
<version>8.0.27</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</plugin>
</plugins>
3. 在resources文件下创建两个配置文件
1) generator.properties:用于存放数据库连接信息
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
# 此处请修改为你们自己的数据库连接信息
jdbc.url=jdbc:mysql://localhost:3306/mp?characterEncoding=UTF-8&serverTimezone=UTC
jdbc.username=root
jdbc.password=111111
2) generatorConfig.xml:为MyBatis-Generator的配置文件
<?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>
<!--从generator.properties文件中获取参数-->
<properties resource="generator.properties"/>
<!-- 配置一个代码生成操作,如果生成的目录或是数据库不一样,只需要参考增加一个context节点即可-->
<!-- context 是逆向工程的主要配置信息 -->
<!-- id:自己随便起个名字,不能重复 -->
<!-- targetRuntime:设置生成的文件适用于那个 mybatis 版本 -->
<context id="MyEmployee" targetRuntime="MyBatis3">
<!--optional,指在创建class时,对注释进行控制-->
<commentGenerator>
<!-- 是否阻止生成注释 true:阻止 false:不阻止(默认) -->
<property name="suppressAllComments" value="true"/>
<!-- 是否阻止生成的注释包含时间戳 true:阻止 false:不阻止(默认)-->
<property name="suppressDate" value="true"/>
</commentGenerator>
<!--jdbc的数据库连接参数,从generator.properties文件中获取参数-->
<jdbcConnection
driverClass="${jdbc.driverClassName}"
connectionURL="${jdbc.url}"
userId="${jdbc.username}"
password="${jdbc.password}">
</jdbcConnection>
<!--非必须,类型处理器,指定数据库类型和java类型之间如何转换-->
<javaTypeResolver>
<!-- 默认情况下数据库中的 decimal,bigInt 在 Java 对应是 sql 下的 BigDecimal 类 -->
<!-- 而不是 double 和 long 类型 -->
<!-- 使用常用的基本类型代替 sql 包下的引用类型 -->
<!-- 是否强制DECIMAL和NUMERIC类型的字段转换为Java类型的java.math.BigDecimal,默认值为false,一般不需要配置-->
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- targetPackage:生成的实体类所在的包 -->
<!-- targetProject:生成的实体类所在的位置 -->
<javaModelGenerator targetPackage="com.baidu.mybatisgenerator.entity"
targetProject="src/main/java">
<!-- 是否允许子包 -->
<property name="enableSubPackages" value="true"/>
<!-- 是否对modal添加构造函数 -->
<property name="constructorBased" value="true"/>
<!-- 是否清理从数据库中查询出的字符串左右两边的空白字符 -->
<property name="trimStrings" value="true"/>
<!-- 建立modal对象是否不可改变 即生成的modal对象不会有setter方法,只有构造方法 -->
<property name="immutable" value="false"/>
</javaModelGenerator>
<!-- targetPackage 和 targetProject:指定生成映射文件(XxxMapper.xml)的位置 -->
<sqlMapGenerator targetPackage="mapper"
targetProject="src/main/resources">
<!-- 针对数据库的一个配置,是否把 schema 作为字包名 -->
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.baidu.mybatisgenerator.dao" targetProject="src/main/java">
<!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 -->
<property name="enableSubPackages" value="false"/>
</javaClientGenerator>
<!-- tableName:数据库中的表名,要生成更多的表就在下面继续加table标签,可以使用SQL通配符匹配多个表:<table tableName="%"/> -->
<!-- domainObjectName:要生成的实体类名(可以不指定,默认按帕斯卡命名法将表名转换成类名) -->
<!-- enableXXXByExample 默认为 true, 为 true 会生成一个对应Example帮助类,帮助你进行条件查询,不想要可以设为false-->
<table tableName="employee" domainObjectName="Employee"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"/>
</context>
</generatorConfiguration>