基于Mybatis Generator 1.3.5,所有功能都使用插件实现,但为了修复sonar扫描出来的坏味道,修改了部分源码。 没在mysql外的其他数据库上使用过,请谨慎。
- 字段、getter、setter注释。自动读取表字段注释,加到Model类上。
- 逻辑删除。可以设置逻辑删除字段、删除时的值、未删除时的值。支持数字和字符类型(2018.11.16)。
- Mysql物理分页。使用offset limit分页。增加PageHelper,一行代码直接出分页信息(currentPage,totalPage,pageSize,totalCount,dataList)(2018.11.16)
- 通过Example找出一条数据
- 批量插入
- 优化生成的代码,去除部分sonar标记的'坏味道'
- 注释
<plugin type="com.pocketdigi.generator.plugins.FieldCommentPlugin" />
- 逻辑删除
<plugin type="com.pocketdigi.generator.plugins.LogicallyDeletePlugin" >
<property name="column" value="is_deleted" />
<property name="deletedValue" value="1" />
<property name="unDeletedValue" value="0" />
</plugin>
使用Example查找未删除的数据,通过orNotDeleted方法创建example.orNotDeleted();
- 物理分页
<plugin type="com.pocketdigi.generator.plugins.MySQLPagingPlugin" >
<property name="pageHelperPackage" value="com.pocketdigi.demo.dal.page" />
</plugin>
pageHelperPackage
属性配置PageHelper
生成的包名,如果不配置这个属性,默认不生成PageHelper
spring boot配置PageHelper Bean:
@Bean
public PageHelper pageHelper(SqlSessionFactory sessionFactory){
return new PageHelper(sessionFactory);
}
使用:
ConfigExample example = new ConfigExample();
example.orNotDeleted();
Page<Config> configPage = pageHelper.selectByExamplePaging(example, 1, 2);
Page.java:
public final class Page<T> {
private Integer currentPage;
private Integer totalPage;
private Integer pageSize;
private Long totalCount;
private List<T> dataList;
}
- SelectOneByExample
<plugin type="com.pocketdigi.generator.plugins.SelectOneByExamplePlugin" />
- 批量插入
<plugin type="com.pocketdigi.generator.plugins.InsertBatchPlugin" />