文档章节

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

冯文议
 冯文议
发布于 2018/05/10 01:20
字数 663
阅读 51
收藏 6

写在前面的话

前面学习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

© 著作权归作者所有

冯文议
粉丝 11
博文 47
码字总数 47895
作品 0
成都
高级程序员
私信 提问
回顾一下MyBatis逆向工程——自动生成代码

⭐⭐⭐⭐⭐最最最最最重要的事情: 我自己总结的Java学习的系统知识点以及面试问题,目前已经开源,会一直完善下去,欢迎建议和指导欢迎Star: https://github.com/Snailclimb/Java-Guide 我...

snailclimb
2018/07/12
0
0
MP实战系列(十四)之分页使用

MyBatis Plus的分页,有插件式的,也有其自带了,插件需要配置,说麻烦也不是特别麻烦,不过觉得现有的MyBatis Plus足以解决,就懒得配置插件了。 MyBatis Plus的资料不算是太多,与MyBatis...

youcongtech
2018/09/04
0
0
Mybatis应用学习(6)——Spring框架整合与逆向工程

与Spring框架整合 1. 整合思路: 需要spring通过单例方式管理SqlSessionFactory。 spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession。(spring和mybatis整合自动完成)...

江左煤郎
2018/11/27
55
3
Mybatis的逆向工程简单的使用

参考资料: 官方文档:http://www.mybatis.org/generator/index.html 使用方法: 1.下载使用mybatis逆向工程所需的jar包。 ①自己百度下载mybatis-generator-core,版本为1.3.5。 ②如果使用...

帅得拖网速
2016/11/19
339
0
【MyBatis框架】mybatis逆向工程自动生成代码

逆向工程 1.什么是逆向工程 mybaits需要程序员自己编写sql语句,mybatis官方提供逆向工程 可以针对单表自动生成mybatis执行所需要的代码(mapper.java,mapper.xml、po..) 企业实际开发中,常...

Mysoft
2015/09/21
359
0

没有更多内容

加载失败,请刷新页面

加载更多

规则引擎

解决问题 版本迭代速度更不上业务变化,但是若多个业务同时变化,除了为每个业务设计专属配置项也不利于操作。就想服务接口单纯化,将复杂多变的业务逻辑交给规则引擎,让用户在web端或cs端自...

无极之岚
41分钟前
7
0
OSChina 周三乱弹 —— 欢迎你来做产品经理

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 :10多次劲歌金曲获奖,更多叱咤歌坛排名,黎明才应该是四大天王之首,只可惜拍的电影太少。单曲循环一个多月的歌,力荐 《无名份的...

小小编辑
今天
422
10
500行代码,教你用python写个微信飞机大战

这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。 帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!...

上海小胖
今天
10
0
关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
7
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部