【MyBatis】學習紀要十一:逆向工程

寫在前面的話

前面學習MyBatis的運行原理,剛學完,回頭想一想仍是很是複雜的,也由於以前沒有這樣去分析過源碼,因此這一節算是卡住了,可能會花必定的時間,爲了避免卡住學習進度,因此咱們繼續學習,後面再寫插件。html

Introduction to MyBatis Generator

一、我首先告訴你官方網站地址:MyBatis Generatorjava

二、前面在寫測試的時候,就發現了這個問題,要寫 daomodelmpper ,這在寫項目的時候顯得是非痛苦,那怎麼解決這個問題呢?——答案就是: mybatis generatorgit

三、從第2點就知道了,MyBatis generator的主要做用就是建立 daomodelmppergithub

Quick Start Guide

一、添加依賴api

<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>

二、編寫 generatorConfig.xmlmybatis

爲了順利完成這個文件的編寫,咱們參考官網的 XML Configuration Reference 部分進行編寫。app

另外建議經過搜索引擎編寫的更加完美,或者本身想要的。maven

三、目錄ide

目錄.png

(由於我用了git,因此紅色的不是錯誤)學習

四、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

咱們來嘗試一下

一、掃描dao,兩種解決方法,掃描dao下全部的mapper接口,或者掃描指定的接口。

二、編寫測試代碼:

@Autowired
private CityMapper cityMapper;

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

看下測試結果:

測試結果.png

到這裏就差很少了,寫點後記

後記

一、你能夠參考本節代碼(generator-config),就會很方便的生成你要相關文件和代碼。

二、若是你在前面的MyBatis的基礎部分(例如 Dynamic SQL ),你能夠參考 Mapper.xml 文件進行學習。

資料

一、generator

二、 MyBatis Generator

三、本節測試代碼: generator-config

相關文章
相關標籤/搜索