1.导入jar包
<!--MyBatis 官方提供了一种名为 “逆向工程” 的机制,其可以针对数据库中的单表自动生成 MyBatis 执行所需要的代码
包括:
Java 实体类、Mapper映射配置、Mapper代理接口-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.7</version>
</dependency>
2.写配置文件 ,放在 main/resources 目录下
mybatis-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="DB2Tables" targetRuntime="MyBatis3">
<!-- 是否去除自动生成的代码中的注释 true:是 false:否-->
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!-- 数据库连接信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost/ssm"
userId="ssmUser"
password="123456">
</jdbcConnection>
<!-- 默认 false,把 JDBC DECIMAL 和 NUMERIC 类型解析为 Integer
为 true 时解析为 java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- targetProject:生成 POJO 类的位置 -->
<javaModelGenerator targetPackage="site.suimu.pojo"
targetProject="src/main/java">
<!-- enableSubPackages:是否让 schema 作为包的后缀-->
<property name="enableSubPackages" value="false"/>
<!-- trimStrings:从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- targetProject:生成xml映射文件存放位置 -->
<sqlMapGenerator targetPackage="mapper"
targetProject="src/main/resources">
<!-- enableSubPackages:是否让 schema 作为包的后缀-->
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- targetProject:生成mapper接口存放位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="site.suimu.mapper"
targetProject="src/main/java">
<!-- enableSubPackages:是否让 schema 作为包的后缀-->
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--生成对应表及类名
tableName:要生成的表名
domainObjectName:生成后的实例名
enableCountByExample:Count语句中加入where条件查询,默认为true开启
enableUpdateByExample:Update语句中加入where条件查询,默认为true开启
enableDeleteByExample:Delete语句中加入where条件查询,默认为true开启
enableSelectByExample:Select多条语句中加入where条件查询,默认为true开启
selectByExampleQueryId:Select单个对象语句中加入where条件查询,默认为true开启
-->
<table tableName="airplane"
domainObjectName="Airplane"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="true"
selectByExampleQueryId="false">
<property name="useActualColumnNames" value="true"/>
<property name="my.isgen.usekeys" value="true"/>
<generatedKey column="id" sqlStatement="JDBC"/>
</table>
<table tableName="menu"></table>
<table tableName="t_user"></table>
</context>
</generatorConfiguration>
3 .编写java类
编写java类,位置随意,我放 test/java 目录下
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.api.ShellCallback;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class TestMyBatisGenerator {
public static void main(String[] args) throws Exception {
// warnings 为用于放置生成过程中警告信息的集合对象
List<String> warnings = new ArrayList<String>();
// 指定是否覆盖重名文件
boolean overwrite = true;
// 加载配置文件
File configFile = new File(MyBatisGenerator.class.getClassLoader().getResource("mybatis-generatorConfig.xml").toURI());
// 配置解析类
ConfigurationParser cp = new ConfigurationParser(warnings);
// 配置解析类解析配置文件并生成 Configuration 配置对象
Configuration config = cp.parseConfiguration(configFile);
// ShellCallback 负责如何处理重复文件
ShellCallback callback = new DefaultShellCallback(overwrite);
// 逆向工程对象
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
// 执行逆向文件生成操作
myBatisGenerator.generate(null);
// 打印提示信息
System.out.println("MyBatis 逆向工程执行成功,刷新项目查看文件!");
}
}
运行即可