Fork me on GitHub

mybatis的逆向工程自动生成代码

参考文献:https://blog.csdn.net/yerenyuan_pku/article/details/71909325

逆向工程:

MyBatis需要程序员自己编写sql,如果表太多的话,会很麻烦。所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需要的代码(包括mapper.xml、mapper.java、po..)。通过数据库的表生成代码,这个真的是很方便,感觉前几天看了那么久的mybatis整合的我有点傻。。

目录结构

导入需要的jar包:

mybatis-generator-core-1.3.5.jar

  • 配置逆向工程的配置文件mbg.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?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">
    <!-- 自动生成的代码中不要注释 -->
    <commentGenerator>
    <property name="suppressAllComments" value="true" />
    </commentGenerator>
    <!-- 配置数据库连接 -->
    <jdbcConnection
    driverClass="com.mysql.cj.jdbc.Driver"
    connectionURL="jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8"
    userId="root"
    password="mysql">
    </jdbcConnection>

    <javaTypeResolver >
    <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>
    <!-- 指定javaBean生成的位置 -->
    <javaModelGenerator
    targetPackage="cn.cws6.bean"
    targetProject=".\src\main\java">
    <property name="enableSubPackages" value="true" />
    <property name="trimStrings" value="true" />
    </javaModelGenerator>

    <!-- 指定sql映射文件生成的位置 -->
    <sqlMapGenerator
    targetPackage="mapper"
    targetProject=".\src\main\resources">
    <property name="enableSubPackages" value="true" />
    </sqlMapGenerator>

    <!-- 指定dao接口生成的位置,mapper接口 -->
    <javaClientGenerator type="XMLMAPPER"
    targetPackage="cn.cws6.dao"
    targetProject=".\src\main\java">
    <property name="enableSubPackages" value="true" />
    </javaClientGenerator>

    <!-- table指定每个表的生成策略 -->
    <table tableName="users" domainObjectName="users"></table>
    <table tableName="employee" domainObjectName="employee"></table>

    </context>
    </generatorConfiguration>
  • 执行代码MBGTest.java

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    package cn.cws6.test;

    import java.io.File;
    import java.io.IOException;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;

    import org.mybatis.generator.api.MyBatisGenerator;
    import org.mybatis.generator.config.Configuration;
    import org.mybatis.generator.config.xml.ConfigurationParser;
    import org.mybatis.generator.exception.InvalidConfigurationException;
    import org.mybatis.generator.exception.XMLParserException;
    import org.mybatis.generator.internal.DefaultShellCallback;

    public class MBGTest {
    public static void main(String[] args) throws IOException, XMLParserException, InvalidConfigurationException, SQLException, InterruptedException{
    List<String> warnings = new ArrayList<String>();
    boolean overwrite = true;
    File configFile = new File("mbg.xml");
    ConfigurationParser cp = new ConfigurationParser(warnings);
    Configuration config = cp.parseConfiguration(configFile);
    DefaultShellCallback callback = new DefaultShellCallback(overwrite);
    MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
    myBatisGenerator.generate(null);
    }
    }

运行之后,刷新一下,会发现很多代码已经生成。

-------------本文结束感谢您的阅读-------------