BeetlSQL 研发自 2015 年,核心和生态扩展全部自研。目标是提供开发高效,维护高效,运行高效的数据访问框架,它适用范围广,定制性强,入门快。
阅读文档 源码和例子 在线体验 多库使用 性能测试 插件支持
- BaseMapper 增加对Batch做的分批处理接口,新增insertBatch,updateBatch等分批处理结果口,并更新了相应的InsertBatchAMI,UpdateByIdBatchAMI 等接口实现
/**
* 批量插入实体。
* 未指定batchSize情况下,默认是DbStyle.getMaxBatchCount
* @param list 实体集合
*/
@AutoMapper(InsertBatchAMI.class)
void insertBatch(List<T> list);
/**
* 分批插入数据
* @param list
* @param batchSize
*/
@AutoMapper(InsertBatchAMI.class)
void insertBatch(List<T> list,int batchSize);
- 修复批量更新接口,在Oracle数据库情况下可能导致游标超过设定的BUG
maven
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetlsql</artifactId>
<version>3.34-RELEASE</version>
</dependency>
BeetlSQL 核心功能
| BeetlSQL 核心 |
功能 |
| sql-core |
核心包,封装了 JDBC 操作,SQL 文件管理,注解的注解管理 |
| sql-fetch |
类似 Hibernate 那样提供 @Fetch,@FetchMany 等注解 |
| sql-mapper |
mapper 类定义和扩展,用户可以自定义自己的 mapper 和 mapper 的注解 |
| sql-intergration |
整合 Spring,solon,jfinal 等框架,以及例子 |
| sql-query |
Query 和 LambdaQuery,用 Java API 构造和使用 SQL |
| sql-mapping |
支持单表,多表与 POJO 的互相映射,支持 json 定义,xml 定义映射方式,或者约定习俗 |
| sql-template |
Beetl 模板实现,且支持其他模板语言 |
| sql-gen |
代码生成抽象包,并提供默认实现可以生成 dao,sql 文件,md 文档 |
| sql-db-support |
各种数据库的测试和验证,支持 33+ 数据库。 |
| sql-samples |
包含了上百个使用 beetlsql 的例子 |
| sql-test |
包含了上百个单元测试例子 |
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-rewrite |
采用 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 |
查询 |