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】

  • 相关阅读:
    单例模式
    Curator Zookeeper分布式锁
    LruCache算法原理及实现
    lombok 简化java代码注解
    Oracle客户端工具出现“Cannot access NLS data files or invalid environment specified”错误的解决办法
    解决mysql Table ‘xxx’ is marked as crashed and should be repaired的问题。
    Redis 3.0 Cluster集群配置
    分布式锁的三种实现方式
    maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令
    How to Use Convolutional Neural Networks for Time Series Classification
  • 原文地址:https://www.cnblogs.com/itgungnir/p/6211355.html
Copyright © 2011-2022 走看看