MyBatis generator plus 基于mybatis-generator-core v.1.3.2 扩展,增加如下主要特性:
1.生成支持Oracle、Mysql、Sqlserver分页查询的代码:
//分页查询demo OperateLogExample relationshipsExample = new OperateLogExample(); relationshipsExample.setPagination(0L,10L); List operateLogList = operateLogMapper.selectByExample(relationshipsExample);
2.生成支持Oracle、Mysql、Sqlserver批量插入的代码:
//批量插入demo List 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);
3.Model类支持Builder模式创建,示例代码:
User user = new User.Builder() .userName("insert_test") .creatTime(new Date()) .updateTime(new Date()) .build();
4.支持Oracle使用SEQUENCE实现自增主键: 需要建立表主键对应的SEQUENCE,并且SEQUENCE的名称作出了要求:格式为table_name_SEQUENCE
5.支持Mapper接口设置数据源schema,可用于分库业务; demo.mapper.ooc.UserVisitLogMapper.DATA_SOURCE_NAME
6.针对MySQL下分页大偏移量时慢查询优化List selectByBigOffset(DomainExample example);
List selectByBigOffset(DomainExample example)
7.乐观锁支持int updateByOptimisticLock(Domain record);
int updateByOptimisticLock(Domain record)
pom里plugin配置如下:
org.ihansen.mbp mybatis-generator-plus-maven-plugin 1.4 true true tool/mbp/MybatisGeneratorCfg.xml
供参考的MBP配置文件: MybatisGeneratorCfg.xml 终端运行如下命令,生成自动代码:
mvn org.ihansen.mbp:mybatis-generator-plus-maven-plugin:1.4:generate
包含运行依赖包的可独立执行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
本工具的使用方式和原生的MyBatis generator使用方式一致,兼容原生版本。maven 坐标:
org.ihansen.mbp mybatis-generator-plus 1.4 test
生成文件的示例入口: test/demo.MBPMain