SQL Tools ( Dialect, Pagination, DDL Dump, UrlParser, SqlStatementParser, WallFilter, BatchExecutor for Test) based Java
module | sqlhelper version | JDK | framework version | Description |
---|---|---|---|---|
sqlhelper-dialect | 1.0+ | 1.6+ | the core (绝大部分功能都离不开它) | |
sqlhelper-cli | 2.0+ | 1.8+ | CLI 命令行工具 | |
sqlhelper-cli-assembly | 2.0+ | 1.8+ | 为 CLI 命令行工具 提供打包功能 | |
sqlhelper-mybatis | 1.0+ | 1.6+ | 提供对MyBatis的支持 (主要包括:通用分页、通用批量操作、多数据源) | |
sqlhelper-mybatis-spring-boot | 1.0+ | 1.6+ | 为MyBatis + SqlHelper 提供了Spring Boot 快速启动 | |
sqlhelper-mybatis-over-pagehelper | 1.0+ | 1.6+ | 引入它就可以无缝的从 mybatis-pagehelper 迁移到 SqlHelper | |
sqlhelper-jfinal | 1.2+ | 1.6+ | 4.3+ | 对国产框架jfinal支持 (主要包括:通用分页) |
sqlhelper-ebean | 1.2+ | 1.6+ | 对 ebean 支持(主要包括:通用分页) | |
sqlhelper-hibernate | 1.2+ | 1.6+ | 对 hibernate 支持(主要包括:通用分页) | |
sqlhelper-mango | 1.2+ | 1.6+ | 对 mango 支持 支持(主要包括:通用分页) | |
sqlhelper-batchinsert | 1.2+ | 1.6+ | 为了 性能测试 提供的批量入库工具 | |
sqlhelper-springjdbc | 2.0.2+ | 1.6+ | spring 4.0+ | 对 spring-jdbc 支持 (主要包括:通用分页) |
sqlhelper-springjdbc-spring-booter | 2.0.2+ | 1.8+ | 对 spring-jdbc 应用提供了 Spring Boot 快速启动 | |
sqlhelper-mybatisplus-3 | 2.0.7+ | 1.8+ | mybatis-plus 3.2.0+ | 对 mybatis-plus 支持 |
sqlhelper-mybatisplus-spring-boot-starter | 2.0.7+ | 1.8+ | mybatis-plus 3.1.2+ | 对 mybatis-plus 应用提供了 Spring Boot 快速启动 |
sqlhelper-mybatisplus-2 | 3.3.0+ | 1.6+ | mybatis-plus 3.2.0+ | 对 mybatis-plus 支持 |
sqlhelper-mybatisplus_2x-spring-boot-starter | 2.0.7+ | 1.6+ | mybatis-plus 3.1.2+ | 对 mybatis-plus 应用提供了 Spring Boot 快速启动 |
sqlhelper-tkmapper-spring-boot-starterer | 3.1.0+ | 1.8+ | 对 tk.mybatis Mapper 应用提供了 Spring Boot 快速启动 | |
sqlhelper-dbutils | 2.2.0 | 1.6+ | 对 Apache Commons-DBUtils 支持 (主要包括:通用分页) | |
sqlhelper-jsqlparser | 3.0.3 | 1.6+ | 对于要基于SQL Parser接口来完成的功能 由jsqlparser 这个库来实现 | |
sqlhelper-mybatis-solon-plugin | 3.2.0 | 1.8+ | 支持solon 框架 | |
sqlhelper-datasource | 3.4.0 | 1.6+ | 提供通用的多数据源配置、解析、路由框架 | |
sqlhelper-mybatis-spring-common | 3.4.0 | 1.6+ | 提供mybatis + spring 环境下,通用的代码 | |
sqlhelper-examples | 1.0+ | 1.8+ | 为这些工具提供 测试用例 |
metric | mybatis-pagehelper | sqlhelper |
---|---|---|
databases | 13 | 100+ |
multiple databases in runtime | √ | √ |
auto detect dialect | √ | √ |
plugin | √ | √ |
PrepareStatement with '?' | X | √ |
mybatis | 3.x | 3.x |
spring boot | 1.x, 2.x | 1.x, 2.x |
JDK | 1.6+ | 1.6+ |
jFinal | X | √ |
Mango | X | √ |
EBean | X | √ |
国产数据库 | X | √ (参见上述列表) |
Spring JDBC | X | √ 2.x,3.x,4.x,5.x |
SqlSymbol Mapping | X | √ |
MyBatis-Plus | X | √ |
tk.mapper | √ | √ |
Apache Commons-DBUtils | X | √ |
Subquery pagination | X | √ |
solon | X | √ |
多数据源 | X | √ |
更多说明,参见教程:
1. https://fangjinuo.gitee.io/docs/index.html
2. https://fangjinuo.github.io
目前针对动态(多)数据源这块,提供了方便的,易扩展的框架,可以基于此多数据源框架与各种ORM框架结合。 此外目前内置对 MyBatis 系框架( mybatis, mybatis-plus(2.x, 3.x), tk.mapper 等)做了内置的支持。提供了便利的 spring boot starter。
sqlhelper:
dynamic-datasource:
enabled: true
datasources:
- group: A
name: master
url: jdbc:h2:file:${user.dir}/sqlhelper-examples/sqlhelper-examples-db/src/main/resources/test
driver-class-name: org.h2.Driver
username: sa
password: 123456
- group: A
name: slave-1
url: jdbc:h2:file:${user.dir}/sqlhelper-examples/sqlhelper-examples-db/src/main/resources/test
driver-class-name: org.h2.Driver
username: sa
password: 123456
- group: A
name: slave-2
url: jdbc:h2:file:${user.dir}/sqlhelper-examples/sqlhelper-examples-db/src/main/resources/test
driver-class-name: org.h2.Driver
username: sa
password: 123456
- group: B
name: mysql
url: jdbc:h2:file:${user.dir}/sqlhelper-examples/sqlhelper-examples-db/src/main/resources/test
driver-class-name: org.h2.Driver
username: sa
password: 123456
- group: C
name: oracle
url: jdbc:h2:file:${user.dir}/sqlhelper-examples/sqlhelper-examples-db/src/main/resources/test
driver-class-name: org.h2.Driver
username: sa
password: 123456
- group: C
name: xxxx
url: jdbc:h2:file:${user.dir}/sqlhelper-examples/sqlhelper-examples-db/src/main/resources/test
driver-class-name: org.h2.Driver
username: sa
password: 123456
目前做法:
针对每一个数据源,都添加一个 TransactionManager。各自控制自己的。
Parse jdbc url.
String url = "jdbc:mysql://${localhost}:${port}...."; DatabaseInfo dbinfo = new JdbcUrlParser().parse(url) ...
如果你想要进行业务SQL性能优化,又苦于数据库里没有太多数据,可以使用它来进行批量插入数据,大大的节省你造数据的时间。具体参加sqlhelper-batchinsert模块。
这里提供了一些常见问题,对于刚使用SQLHelper时,可能对你很有帮助
QQ 交流群: 750929088
最后,感谢 Jetbrains 提供免费License,方便了开源项目的发展。