# mybatis-helper
**Repository Path**: cgling/mybatis-helper
## Basic Information
- **Project Name**: mybatis-helper
- **Description**: Mybatis 增强工具包
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2017-11-22
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Mybatis 增强工具包
### 1. mybatis-generator 生成工具增强
强增内容:
> 1. 生成工具模板化代码(不再需要配置XML文件)
> 1. 自动加载当前工程jar包
> 1. 设置文件生成不可覆盖,包括XML文件
> 1. SQL关键字大写
> 1. SQL语句格式化
> 1. 简化SQL语句,
> 1. 只生成必须的SQL语句
> 1. 支持Model类名添加固定后缀
> 1. Model的Field以及Getter和Setter添加注释
使用说明:
首先加入生成工具依赖包以及数据库驱动包
```xml
org.mybatis.generator
mybatis-generator-core
1.3.5
mysql
mysql-connector-java
5.1.44
```
生成工具模板化代码示例:
```java
public class XGeneratorTest {
@Test
public void run() throws Exception {
new XGenerator(){
@Override
protected void configureJdbcConnection(XJdbcConnection jdbcConnection) {
jdbcConnection.setConnectionURL("jdbc:mysql://localhost:3306/world");
jdbcConnection.setDriverClass("com.mysql.jdbc.Driver");
jdbcConnection.setUserId("root");
jdbcConnection.setPassword("root");
}
@Override
protected void configureSqlMapGenerator(XSqlMapGenerator sqlMapGenerator) {
sqlMapGenerator.setTargetPackage("mapper");
sqlMapGenerator.setTargetProject("src/test/resources");
}
@Override
protected void configureJavaModelGenerator(XJavaModelGenerator javaModelGenerator) {
javaModelGenerator.setTargetPackage("model");
javaModelGenerator.setTargetProject("src/test/java");
}
@Override
protected void configureJavaClientGenerator(XJavaClientGenerator javaClientGenerator) {
javaClientGenerator.setTargetPackage("mapper");
javaClientGenerator.setTargetProject("src/test/java");
}
@Override
protected void configureTables(List tables) {
tables.add(new XTable.Builder(){
@Override
protected void configureTable(XTable table) {
table.setTableName("city");
}
@Override
protected XGeneratedKey configureGeneratedKey(XGeneratedKey generatedKey) {
generatedKey.setColumn("id");
generatedKey.setIdentity(true);
return generatedKey;
}
}.build());
}
}.run();
}
}
```
一点说明:
* 每一个configure方法都对应原来XML文件的一项配置
* configure方法入参如果是一个List<T>,这个T内部都会有一个Bulder构造工具,可以容易的构造出这个对象
* configure方法如果有返回值,表示这个配置项是可选的,当返回null表示不需要这个配置项,如需要就返回当前的入参即可
______________________________________________________________________
### 2. XML Mapper文件热加载工具