1. 程式人生 > >回顧一下MyBatis逆向工程——自動生成代碼

回顧一下MyBatis逆向工程——自動生成代碼

ive def pre bool throws artifact 默認 config batis

前言

最近做的項目(SSM+Shiro)的數據庫表已經創建完成,一共有15張表,如果我們一個個去寫pojo/bean的代碼以及各種sql語句的話未免太過麻煩而且很容易出錯,這個時候我們就需要MyBatis逆向工程去為我們生成這些基本的東西。
先來簡單的了解一下什麽是逆向工程

一 什麽是逆向工程

官網解釋濃縮版:
MyBatis逆向工程需要用到的就是MyBatis官方提供的MyBatis Generator(MBG)。MBG是MyBatis和iBATIS的代碼生成器,它將為所有版本的MyBatis以及版本2.2.0之後的iBATIS版本生成代碼。MBG對簡單CRUD(增刪改查)的大部分數據庫操作產生重大影響。但是您仍然需要為連接查詢或存儲過程手動編寫SQL和對象代碼。

簡要概括版:
創建好數據庫表之後,MBG可以根據數據庫表自動為您生成pojo類、example類(用於添加條件,相當where語句後面的部分 )、mapper文件。
關於Mapper接口以及Example的實例的講解可以查看這一篇文章:《Mapper接口以及Example的實例》
blog.csdn.net/biandous/ar…

介紹完逆向工程是個什麽東西後,接下來我們就要開始學習如何使用它了?

二 使用MyBatis逆向工程

考慮到大家的基礎可能不同,所以我盡可能詳細一點。
2.1 新建Maven項目並添加相關依賴
1.新建Maven項目(普通的Java項目):
技術分享圖片

2.添加相關依賴(pom.xml):
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>mybatis-generator</groupId>
<artifactId>sql-mapper</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>sql-mapper</name>
<url>http://maven.apache.org</url>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <!--log4j -->
    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <!--MyBatis Generator -->
    <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
    <dependency>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-core</artifactId>
        <version>1.3.5</version>
    </dependency>
    <!--mysql-connector-java -->
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.38</version>
    </dependency>
    <!--mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.2.1</version>
    </dependency>
</dependencies>

</project>

2.2 項目創建完成之後的目錄結構
技術分享圖片
2.3 MyBatis逆向工程代碼編寫
核心代碼示例(推薦讀取xml配置文件的形式,還有一種基於Java的配置這裏就不做演示):
List<String> warnings = new ArrayList<String>();
boolean overwrite = true;
//讀取xml配置文件,推薦使用這種方式
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);
本項目中使用代碼MyBatisGeneratorApp.java:
public class MyBatisGeneratorApp {

public void generator() 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 {
        MyBatisGeneratorApp generatorSqlmap = new MyBatisGeneratorApp();
        generatorSqlmap.generator();
    } catch (Exception e) {
        e.printStackTrace();
    }

}

}
2.4 MyBatis逆向工程配置文件以及log4j配置文件編寫
MyBatis逆向工程配置文件如下(註釋已經解釋的很詳細了,我這裏就不多做解釋了):
<?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="testTables" targetRuntime="MyBatis3">
<commentGenerator>

** 2.5 運行結果** pojo及example類:![](http://i2.51cto.com/images/blog/201807/11/b35d00a911317d14ec4f409f1b4802f1.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) mapper接口及mapper.xml:![](http://i2.51cto.com/images/blog/201807/11/4d839ecddf07c3e1ca6af4c3e35fd549.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=) 我們已經介紹了MyBatis逆向工程以及它的使用,下面我們簡單的總結與補充一下所學的知識。 # **三 總結** 什麽是逆向工程? MBG可以根據數據庫表自動為您生成pojo類、example類(用於添加條件,相當where語句後面的部分 )、mapper文件`。 如何使用逆向工程? pom文件(添加相關jar包)->逆向工程核心代碼編寫->創建generatorConfig.xml配置文件(可以加上log4j日誌打印配置文件)

回顧一下MyBatis逆向工程——自動生成代碼