BeetlSQL 研发自 2015 年,非 MyBatis 扩展,全部自研。目标是提供开发高效,维护高效,运行高效的数据访问框架,它适用范围广,定制性强
阅读文档 源码和例子 在线体验 多库使用 性能测试 插件支持
本次调整:
- 接收 Pull Request,针对sqlite不支持getGeneratedKeys的优化
- 验证高版本的MariaDB的存储过程封装调用支持
public interface MyTestMapper extends BaseMapper {
@Call("call test.logcount(?,?)")
@Update
void logcount(int id, @CallOutBean OutHolder outHolder);
}
BeetlSQL 最新扩展包
| BeetlSQL 扩展包 |
功能 |
| sql-xml |
高仿 myabtis 的 xml 语法,如果有想喜欢使用 xml 写 sql 模板的,可以使用此扩展包 |
| sql-accelerator |
性能加速包,通过反射优化,缓存,让 beetlsql 性能提升 50%-200%,接近一半手写 JDBC 的性能 |
| sql-firewall |
sql 防火墙,避免不小心写的 sql 破坏数据库 |
| sql-dynamic-table |
支持像访问静态表格那样防火动态表格,简化这类需要开发 |
| sql-bean-encrypt |
支持 @MD5 ,@AES 等对字段加密解密 |
| sql-tenant |
采用 sql 重写,支持单表多租户模式,逻辑删除,数据权限功能 |
| SAGA(实验) |
BeetSQL 的 SAGA 是实现,用 SAGA 微服务事务 |
使用加速扩展性能优化结果:能达到近一半手写 JDBC 的性能
| 查询 |
测试内容 |
BeetlSQL(ops/ms) |
纯 jdbc |
mybatis |
JPA |
| beetlsqlExecuteJdbc |
直接执行JDBC |
318 |
678 |
/ |
64 |
| beetlsqlExecuteTemplate |
执行SQL模板 |
268 |
/ |
44 |
66 |
| beetlsqlFile |
SQL存放在文件统一管理 |
266 |
/ |
41 |
/ |
| beetlsqlInsert |
插入一条 |
129 |
248 |
43 |
59 |
| beetlsqlGetAll |
获取所有数据 |
13 |
40 |
4 |
5 |
| beetlsqlLambdaQuery |
Java函数编写SQL执行查询 |
196 |
/ |
9 |
/ |
| beetlsqlPageQuery |
翻页查询 |
159 |
/ |
17 |
59 |
| beetlsqlSelectById |
查询一条 |
259 |
670 |
43 |
61 |
maven
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetlsql</artifactId>
<version>3.27.3-RELEASE</version>
</dependency>
BeetlSQL 支持如下数据库
- 传统数据库:MySQL (包括支持 MySQL 协议的各种数据库), MariaDB ,Oralce ,Postgres (包括支持 Postgres 协议的各种数据库), DB2 , SQL Server ,H2 , SQLite , Derby ,神通,达梦,华为高斯,人大金仓,PolarDB,GBase8s,GreatSQL 等
- 大数据:HBase,ClickHouse,Cassandar,Hive,GreenPlum
- 物联网时序数据库:Machbase,TD-Engine,IotDB
- SQL 查询引擎:Drill,Presto,Druid
- 内存数据库:ignite,CouchBase
插件支持
![]()