MyBatis Generator Plus
1.介绍:
MyBatis generator plus 基于mybatis-generator-core v.1.3.2 扩展,增加了以下特性:
- 生成支持Oracle、Mysql、Sqlserver分页查询的代码:
//分页查询demo
OperateLogExample relationshipsExample = new OperateLogExample();
relationshipsExample.setPagination(0L,10L);
List<OperateLog> operateLogList = operateLogMapper.selectByExample(relationshipsExample);
- 生成支持Oracle、Mysql、Sqlserver批量插入的代码:
//批量插入demo
List<OperateLog> operateLogList = new ArrayList<>();
for (int i = 0; i < 5; i++) {
OperateLog operateLog = new OperateLog.Builder()
.action("insertBatch_test"+i)
.build();
operateLogList.add(operateLog);
}
operateLogMapper.insertBatch(operateLogList);
- Model类支持Builder模式创建,示例代码:
User user = new User.Builder()
.userName("insert_test")
.creatTime(new Date())
.updateTime(new Date())
.build();
-
支持Oracle使用SEQUENCE实现自增主键:
需要建立表主键对应的SEQUENCE,并且SEQUENCE的名称作出了要求:格式为table_name_SEQUENCE -
支持Mapper接口设置数据源schema,可用于分库业务;
demo.mapper.ooc.UserVisitLogMapper.DATA_SOURCE_NAME -
针对MySQL下分页大偏移量时慢查询优化
List<Domain> selectByBigOffset(DomainExample example)
; -
乐观锁支持
int updateByOptimisticLock(Domain record)
;
2.使用方式
方式一: 配置maven插件生成代码【推荐】
pom里plugin配置如下:
<plugin>
<groupId>org.ihansen.mbp</groupId>
<artifactId>mybatis-generator-plus-maven-plugin</artifactId>
<version>1.4</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
<configurationFile>tool/mbp/MybatisGeneratorCfg.xml</configurationFile>
</configuration>
</plugin>
供参考的MBP配置文件: MybatisGeneratorCfg.xml
终端运行如下命令,生成自动代码:
mvn org.ihansen.mbp:mybatis-generator-plus-maven-plugin:1.4:generate
方式二:运行可执行jar文件
包含运行依赖包的可独立执行jar文件:mybatis-generator-plus-jar-with-dependencies.jar
供参考的MBP配置文件: MybatisGeneratorCfg.xml
使用如下命令执行即可生成自动文件:
java -jar mybatis-generator-plus-jar-with-dependencies-1.4.jar -configfile MybatisGeneratorCfg.xml -overwrite
方式三:main方法运行
本工具的使用方式和原生的MyBatis generator使用方式一致,兼容原生版本。maven 坐标:
<dependency>
<groupId>org.ihansen.mbp</groupId>
<artifactId>mybatis-generator-plus</artifactId>
<version>1.4</version>
<scope>test</scope>
</dependency>
生成文件的示例入口: test/demo.MBPMain