Usage
基于 Mybatis-Plus 3.1.2 实现,只进行了简单扩展,使用方法请参考MP官网。
Copy
<dependency>
<groupId>net.dragonshard</groupId>
<artifactId>dragonshard-data-mybatis</artifactId>
<version>${latest.version}</version>
</dependency>
Base Class
Service
我们重写了通用 service,用于解决与 dynamic-datasource 的事物冲突导致切换数据源失败的情况。
net.dragonshard.dsf.data.mybatis.framework.service.IDsfService
net.dragonshard.dsf.data.mybatis.framework.service.impl.DsfServiceImpl
MyBatisController
为了方便进行分页查询,提供了可供继承的基础 MyBatisController。
里面实现了分页方法 getPage( boolean openSort ),参数为是否开启排序,默认false
// 在一个 like 查询中的用法
QueryWrapper<Role> queryWrapper = new QueryWrapper<Role>();
queryWrapper.likeRight("role_name", roleName);
roleService.page(this.getPage(), queryWrapper).convert(e -> e.convert(RoleDTO.class))
分页参数是通过 request.getParameter() 获取的,见下表
参数名 | 默认值 | 类型/选项 | 描述 |
---|---|---|---|
pageNum | Integer | 页数 | |
pageSize | Integer | 分页大小,默认10,最大50 | |
ascs | String | 排序字段 ASC | |
descs | String | 排序字段 DESC | |
openPaging | true | true / false | 是否开启查询分页 |
Code Generator
对 Mybatis-Plus 提供的 generator 进行简单封装,默认实现了常用的约定配置,后期会对这部分做深度扩展,提供更多的可配置选项。
使用方法,通过 main() 调用。
Copy
public static void main(String[] args){
// 包含的表集合
String[] inCludeTableNames = {
"sys_user",
"sys_role",
"sys_user_role"
};
MybatisCodeGenerator mybatisGenerator = new MybatisCodeGenerator();
mybatisGenerator.getDataSourceConfig()
.setDriverName("com.mysql.jdbc.Driver")
.setUrl("jdbc:mysql://localhost:3306/dragonshard_sample_master?useUnicode=true&characterEncoding=UTF8")
.setUsername("root")
.setPassword("123456");
mybatisGenerator.getStrategyConfig()
.setInclude(inCludeTableNames)
// 去除前缀
.setTablePrefix("sys_");
mybatisGenerator.getPackageConfig()
.setParent("net.dragonshard.sample")
.setEntity("model.entity");
mybatisGenerator.getGlobalConfig()
.setBaseResultMap(false)
// XML columList
.setBaseColumnList(false)
.setOpen(false)
.setAuthor("dragonshard.net")
.setSwagger2(false);
mybatisGenerator.execute();
}