# mbg-plus-extend
**Repository Path**: CodeinChad/mbg-plus-extend
## Basic Information
- **Project Name**: mbg-plus-extend
- **Description**: MyBatis-Generator plus extends
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-06-08
- **Last Updated**: 2022-08-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### 迭代记录
| 版本 |创作者| 时间 | 内容 |
|-------|---|------------|---------------------|
| 1.0 |chad| 2022-05-18 | 创建 |
| 1.0.1 |chad| 2022-06-24 | 增加Props注解 |
| 1.0.2 |chad| 2022-08-09 | Props常量属性名大写,符合Java规范 |
| 1.0.3 |chad| 2022-08-19 | 依赖scope为provided |
### 说明
日常开发中,使用 `Example`时,常常出现硬编码属性名称,如下:
```java
Example ex = new Example(EmpDo.class);
ex.createCriteria()
.andEqualTo("name", "ZhangSan");
EmpDo emp = empMapper.selectOneByExample(ex);
```
上面代码,需要硬编码`name`到代码中,如果发生字段调整,会造成不必要的麻烦。
`MBG`提供了 `MyBatis3DynamicSql` 的targetRuntime,然而它太复杂了,而又不常使用该功能。
`PropsPlugin`会在`Do`对象中生成静态类,并生成该对象所有属性,利用 `PropsPlugin`,上面代码就会变成:
```java
Example ex = new Example(EmpDo.class);
ex.createCriteria()
.andEqualTo(EmpDo.Props.name, "ZhangSan");
EmpDo emp = empMapper.selectOneByExample(ex);
```
`Props`解决了硬编码问题,而且它特别小巧,也不需要利用 `LambdaQueryWrapper` 动态获取。
### 使用
- pom.xml
```xml
org.mybatis
mybatis
3.5.6
org.mybatis
mybatis-typehandlers-jsr310
1.0.2
mysql
mysql-connector-java
8.0.25
junit
junit
4.13.2
test
tk.mybatis
mapper
4.1.5
test
org.mybatis.generator
mybatis-generator-core
1.3.7
junit
junit
4.13.2
test
io.github.chad2li
mbg-plus-extend
1.0-RELEASE
test
```
- 参考
`src/test/java` : `io.github.chad2li.mbg.plugin.PropsPluginTest` 的 `addProps()` 方法
- `generatorConfig.xml` 19 行
使用 `PropsPlugin` 插件生成 `Props`
``
关于 `MBG` 如何使用,请自行参考 `PropsPluginTest`,网上也有很多教程