zoukankan      html  css  js  c++  java
  • 【JavaEE】之MyBatis逆向工程的使用

      MyBatis逆向工程可以方便的从数据库中将表自动映射到JAVA POJO类,并同时生成Mapper.xml和Mapper接口,方便实用。下面介绍一下逆向工程的使用方法。

      使用逆向工程,我们最好是新建一个JAVA Project,而不要直接在项目工程中进行,以免造成不好的后果。新建一个JAVA Project,导入需要的JAR包,搭建成如下图所示的样子:

      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="MybatisGenerator" targetRuntime="MyBatis3">
            <commentGenerator>
                <!-- 是否去除自动生成的注释,true是,false否 -->
                <property name="supressAllComments" value="true" />
            </commentGenerator>
    
            <!-- 数据库连接信息:驱动类、连接地址、用户名、密码 -->
            <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC"
                userId="root" password="123456">
            </jdbcConnection>
    
            <!-- 默认值 -->
            <javaTypeResolver>
                <property name="forceBigDecimals" value="false" />
            </javaTypeResolver>
    
            <!-- 生成的po实体类的存放位置 -->
            <javaModelGenerator targetPackage="po"
                targetProject=".src">
                <property name="enableSubPackages" value="true" />
                <property name="trimStrings" value="true" />
            </javaModelGenerator>
    
            <!-- 生成的mapper映射文件(XML文件)的存放位置 -->
            <sqlMapGenerator targetPackage="mapper" targetProject=".src">
                <property name="enableSubPackages" value="false" />
            </sqlMapGenerator>
    
            <!-- 生成的mapper接口(JAVA文件)的存放位置 -->
            <javaClientGenerator type="XMLMAPPER"
                targetPackage="mapper" targetProject=".src">
                <property name="enableSubPackages" value="false" />
            </javaClientGenerator>
    
            <!-- 指定数据库表 -->
            <table tableName="items" />
            <table tableName="users" />
            <table tableName="orders" />
            <table tableName="orderdetail" />
        </context>
    </generatorConfiguration>

      MyGenerator.java类中的代码如下所示:

    import java.io.File;
    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.internal.DefaultShellCallback;
    
    public class MyGenerator {
        public void generate() throws Exception {
            List<String> warnings = new ArrayList<String>();
            boolean overwrite = true;
            File configFile = new File("GeneratorConfig.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);
        }
    
        public static void main(String[] args) throws Exception {
            try {
                MyGenerator myGenerator = new MyGenerator();
                myGenerator.generate();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

      运行MyGenerator中的main函数,就可以生成想要的代码了。生成后的项目样子如下图所示:

      逆向工程的文档地址:【逆向工程 - 文档URL】

      逆向工程DEMO的GitHub地址:【逆向工程 - GitHub】

  • 相关阅读:
    python中自定义模块导入
    EditText------Android
    Fragment类实现
    Android文件访问
    python中pip使用国内镜像提高安装速度
    esri/geometry包 (arcgis api for js)
    【CSDN 编辑器 MarkDowm 使用技巧】
    for 循环 :从指定下标开始,并指定步长
    【车牌识别】-车牌中字符分割代码详解
    【 Linux 常用命令】
  • 原文地址:https://www.cnblogs.com/itgungnir/p/6211355.html
Copyright © 2011-2022 走看看