simple-starter-datasource
# 简介
依赖使用HikariCP、P6spy监控日志、MybatisPlus、包含通用CURD控制层
功能:启动应用程序自动创建数据库、自动创建表
功能:通过实例化MapperLocations获取配置值 追加配置文件中的 mapperLocations 属性值
# 引入依赖
<dependencies>
<dependency>
<groupId>cn.iosd</groupId>
<artifactId>simple-starter-datasource</artifactId>
<version>Version</version>
</dependency>
</dependencies>
1
2
3
4
5
6
7
2
3
4
5
6
7
# 配置项
simple:
datasource:
#自动创建数据库 缺省项为true
autoCreateDatabase: true
locations:
## 开启实现MapperLocationsProvider接口获取配置值,实现接口追加配置文件中mapper-locations属性 缺省项为true
enabled: true
1
2
3
4
5
6
7
2
3
4
5
6
7
# 功能
# 自动创建库
业务逻辑类:DatabaseInitializer
实现了ApplicationContextInitializer接口,用于在Spring应用程序上下文初始化时初始化数据库。
从应用程序上下文环境中获取数据库连接属性,并根据jdbcUrl解析出数据库名,然后执行创建数据库的SQL语句。
# 分页插件
启用配置类效果代码:MybatisPlusConfig
使用:mybatis-plus分页插件
# 分页请求参数
实体类:PageRequest
一个封装了分页请求参数的Java类,包含起始页、每页显示记录数、排序、查询条件参数等字段。
# 工具类
将自定义的分页对象PageRequest转换为mybatisPlus的分页对象Page
使用示例:
@Operation(summary = "Api-查询-分页")
@PostMapping("/api/page")
public Response<IPage<T>> apiPage(@RequestBody PageRequest<T> req) {
return Response.ok(service.page(DsConvertUtil.page(req), Wrappers.lambdaQuery(req.getData())));
}
1
2
3
4
5
2
3
4
5
# MapperLocations
# 介绍
实例化MapperLocations获取配置值 覆盖配置文件中的 mapperLocations 属性值
解决:各个模块不同mapper-locations配置能在父级模块没有配置其需要的mapper-locations时能正常使用
注意项:当开启时,配置文件中的mapperLocations属性值可同时生效
# 问题点
例
子模块工程所需 配置文件参数
mybatis-plus.mapper-locations=classpath*:/cn/iosd/base/**/*Mapper.xml
父模块依赖子模块,而父模块的配置文件参数实际为
mybatis-plus.mapper-locations=classpath*:/cn/iosd/test/**/*Mapper.xml
1
2
3
4
2
3
4
父模块运行时,对于子模块调用的mapper接口将会报错:
Invalid bound statement (not found):
1
除非父模块配置包含子模块的参数,这样需要知道各个子模块所需配置,较为麻烦
mybatis-plus.mapper-locations=classpath*:/cn/iosd/test/**/*Mapper.xml,classpath*:/cn/iosd/base/**/*Mapper.xml
1
# 解决示例
子模块实例化MapperLocations
@Bean
public MapperLocations paramMapperLocations() {
return MapperLocations.of("classpath*:/cn/iosd/base/param/mapper/**/*Mapper.xml");
}
1
2
3
4
2
3
4
父模块实现MapperLocationsProvider
@Bean
public MapperLocations collectionMapperLocations() {
return MapperLocations.of("classpath*:/cn/iosd/test/**/*Mapper.xml");
}
1
2
3
4
2
3
4
上次更新: 2024/03/25, 02:28:08