美文网首页
【MyBatis】学习纪要十一:逆向工程

【MyBatis】学习纪要十一:逆向工程

作者: 冯文议 | 来源:发表于2018-05-10 00:44 被阅读175次

    写在前面的话

    前面学习MyBatis的运行原理,刚学完,回头想想还是非常复杂的,也因为之前没有这样去分析过源码,所以这一节算是卡住了,可能会花一定的时间,为了不卡住学习进度,所以我们继续学习,后面再写插件。

    Introduction to MyBatis Generator

    1、我首先告诉你官方网站地址:MyBatis Generator

    2、前面在写测试的时候,就发现了这个问题,要写 daomodelmpper ,这在写项目的时候显得是非痛苦,那怎么解决这个问题呢?——答案就是: mybatis generator

    3、从第2点就知道了,MyBatis generator的主要作用就是创建 daomodelmpper

    Quick Start Guide

    1、添加依赖

            <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator</artifactId>
                <version>1.3.6</version>
            </dependency>
    
            <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.6</version>
            </dependency>
    

    2、编写 generatorConfig.xml

    为了顺利完成这个文件的编写,我们参考官网的 XML Configuration Reference 部分进行编写。

    另外建议通过搜索引擎编写的更加完美,或者自己想要的。

    3、目录

    目录.png

    (因为我用了git,所以红色的不是错误)

    4、Running MyBatis Generator

    在这里 Running MyBatis Generator ,你可以找到各种运行方式。

    如果你是通过搜索引擎的话,可能会找到类似这样的命令

    java -jar mybatis-generator-core-x.x.x.jar -configfile \temp\generatorConfig.xml -overwrite

    如果你是看开源项目的话,你会在pom.xml看到以下代码:

       <project ...>
         ...
         <build>
           ...
           <plugins>
            ...
            <plugin>
              <groupId>org.mybatis.generator</groupId>
              <artifactId>mybatis-generator-maven-plugin</artifactId>
              <version>1.3.5</version>
              <executions>
                <execution>
                  <id>Generate MyBatis Artifacts</id>
                  <goals>
                    <goal>generate</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
            ...
          </plugins>
          ...
        </build>
        ...
      </project>
    

    不论哪种,你都可以在官网找到用法说明。

    那么我们怎么用呢?

    package com.fengwenyi.demo.mybatis.generatorconfig;
    
    import org.junit.Test;
    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;
    
    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * @author Wenyi Feng
     */
    public class RunGenerator {
    
        @Test
        public void test () {
            try {
                List<String> warnings = new ArrayList<String>();
                boolean overwrite = true;
                File configFile = new File("src/main/resources/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);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    

    我们来看一下效果:

    run位置.png run-generator.png new-目录.png

    我们来尝试一下

    1、扫描dao,两种解决方法,扫描dao下所有的mapper接口,或者扫描指定的接口。

    2、编写测试代码:

    @Autowired
    private CityMapper cityMapper;
    
    @Test
    public void testCity () {
        List<City> cities = cityMapper.selectByExample(null);
        for (City city : cities)
            System.out.println(city);
    }
    

    看下测试结果:

    测试结果.png

    到这里就差不多了,写点后记

    后记

    1、你可以参考本节代码(generator-config),就会很方便的生成你要相关文件和代码。

    2、如果你在前面的MyBatis的基础部分(例如 Dynamic SQL ),你可以参考 Mapper.xml 文件进行学习。

    资料

    1、generator

    2、 MyBatis Generator

    3、本节测试代码: generator-config

    相关文章

      网友评论

          本文标题:【MyBatis】学习纪要十一:逆向工程

          本文链接:https://www.haomeiwen.com/subject/mfsarftx.html