前言
最近做的項目(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>