# mybatis-generatorSqlmapCustom
**Repository Path**: mygit.zhoupan/mybatis-generatorSqlmapCustom
## Basic Information
- **Project Name**: mybatis-generatorSqlmapCustom
- **Description**: MyBatis逆向工程
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-09-29
- **Last Updated**: 2024-10-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
一 什么是逆向工程
二 使用MyBatis逆向工程
- 2.1 新建Maven项目并添加相关依赖(pom.xml)
- 2.2 MyBatis逆向工程代码编写
- 2.3 MyBatis逆向工程配置文件以及log4j配置文件编写
- 2.4 项目执行完成之后的目录结构
三 总结
## 一 什么是逆向工程
**官网解释浓缩版:**
MyBatis逆向工程需要用到的就是MyBatis官方提供的MyBatis Generator(MBG)。MBG是MyBatis和iBATIS的代码生成器,它将为所有版本的MyBatis以及版本2.2.0之后的iBATIS版本生成代码。MBG对简单CRUD(增删改查)的大部分数据库操作产生重大影响。但是您仍然需要为连接查询或存储过程手动编写SQL和对象代码。
**简要概括版:**
创建好数据库表之后,MBG可以根据数据库表自动为您生成pojo类、example类(用于添加条件,相当where语句后面的部分 )、mapper文件。
## 二 使用MyBatis逆向工程
使用MyBatis的逆向工程,需要导入逆向工程的jar包,我用的是mybatis-generator-core-1.3.2.jar,下面开始总结一下MyBatis逆向工程的使用步骤
### 2.1 新建Maven项目并添加相关依赖(pom.xml):
```xml
4.0.0
mybatis-generator
sql-mapper
0.0.1-SNAPSHOT
jar
sql-mapper
http://maven.apache.org
UTF-8
log4j
log4j
1.2.17
org.mybatis.generator
mybatis-generator-core
1.3.5
mysql
mysql-connector-java
5.1.38
org.mybatis
mybatis
3.2.1
```
### 2.2 MyBatis逆向工程代码编写
核心代码官网已经给出,地址为:http://www.mybatis.org/generator/running/runningWithJava.html
核心代码示例(推荐读取xml配置文件的形式,还有一种基于Java的配置这里就不做演示):
```java
List warnings = new ArrayList();
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:
````java
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.exception.XMLParserException;
import org.mybatis.generator.internal.DefaultShellCallback;
public class MyBatisGeneratorApp {
public void generator() throws Exception{
List warnings = new ArrayList();
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.3 MyBatis逆向工程配置文件以及log4j配置文件编写
MyBatis GeneratorXML参考配置文件官网已经给出,地址为:http://www.mybatis.org/generator/configreference/xmlconfig.html
MyBatis逆向工程配置文件如下(generatorConfig.xml配置文件如下):
```xml
```
log4j.properties的配置文件如下:
```
log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
```
### 2.4 项目执行完成之后的目录结构

pojo及example类:

mapper接口及mapper.xml:

## 三 总结
- **什么是逆向工程?**
MBG可以根据数据库表自动为您生成pojo类、example类(用于添加条件,相当where语句后面的部分 )、mapper文件。
- **如何使用逆向工程?**
pom文件(添加相关jar包)->逆向工程核心代码编写->创建generatorConfig.xml配置文件(可以加上log4j日志打印配置文件)
mybatis生成工具的帮助文档可以看:
英文:http://www.mybatis.org/generator/usage/mysql.html
中文:http://www.mybatis.tk/
中文:http://mbg.cndocs.tk/
作者:SnailClimb
来源:https://juejin.im/post/5b44ae64f265da0f8145ccab