BeetlSQL 3.37 宣布,增长多对多主动 Fetch
BeetlSQL 研发自 2015 年,核心和生态扩展全部自研。目标是提供开发高效,维护高效,运行高效的数据访问框架,它适用范围广,定制性强,入门快。 阅读文档 源码和例子 在线体验 多库使用 性能测试 插件支持 本次发...
应用介绍
BeetlSQL 研发自 2015 年,核心和生态扩大全部自研。目标是供给开辟高效,保护高效,运行高效的数据拜访框架,它实用范围广,定制性强,入门快。
浏览文档 源码和例子 在线体验 多库应用 机能测试 插件支撑
本次宣布
-
修复SQL Server在某些情况下获取不到表信息的BUG
-
Fetch功能增长了多对多映射
-
更新Beetl版本到最新的3.20.1
Fetch供给了新注解 @FetchMany2Many,实现类如@Build注解供给的FetchMany2ManyAction,能实现经由过程中心表获取对对多半据
@Retention(RetentionPolicy.RUNTIME)@Target(value = https://www.oschina.net/news/398117/{ElementType.METHOD, ElementType.FIELD})"";}
应用例子如下
BeetlSQL 核心功能
整合 Spring,solon,jfinal 等框架,以及例子
BeetlSQL 核心
功能
sql-core
核心包,封装了 JDBC 操作,SQL 文件治理,注解的注解治理
sql-fetch
类似 Hibernate 那样供给 @Fetch,@FetchMany 等注解
sql-mapper
mapper 类定义和扩大,用户可以自定义本身的 mapper 和 mapper 的注解
sql-intergration
sql-query
Query 和 LambdaQuery,用 Java API 构造和应用 SQL
sql-mapping
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-bean-encrypt
支撑 @MD5 ,@AES 等对字段加密解密
sql-rewrite
采取 sql 重写,支撑单表多租户模式,逻辑删除,数据权限功能
SAGA(实验)
4
BeetSQL 的 SAGA 是实现,用 SAGA 微办事事务
应用加快扩大机能优化成果:能达到近一半手写 JDBC 的机能
查询
测试内容
BeetlSQL(ops/ms)
纯 jdbc
mybatis
JPA
beetlsqlExecuteJdbc
直接履行 JDBC
318
/
支撑单表,多表与 POJO 的互相映射,支撑 json 定义,xml 定义映射方法,或者商定习俗
64
beetlsqlExecuteTemplate
5
履行 SQL 模板
268
44
66
beetlsqlFile
SQL 存放在文件同一治理
/
41
/
beetlsqlInsert
266
插入一条
129
248
43
59
beetlsqlGetAll
获取所稀有据
13
40
beetlsqlLambdaQuery
Java 函数编写 SQL 履行查询
196
/
9
@Table(name="sys_user")public class MyUser { @AutoID Integer id; String name; @FetchMany2Many(tableClass = UserRole.class, fromAttr = "userId",toAttr ="roleId") List roles; }
/
beetlsqlPageQuery
翻页查询
159
678
/
17
59
beetlsqlSelectById
查询一条
sql-dynamic-table
259
670
43
61
JMH机能测试
Benchmark Mode Cnt Score Error UnitsBeetl.addEntity thrpt 5 133.190 ± 38.548 ops/msBeetl.complexMapping thrpt 5 236.289 ± 288.370 ops/msBeetl.executeJdbcSql thrpt 5 298.657 ± 80.480 ops/msBeetl.executeTemplateSql thrpt 5 251.418 ± 77.757 ops/msBeetl.getAll thrpt 5 14.531 ± 0.605 ops/msBeetl.getEntity thrpt 5 359.275 ± 85.099 ops/msBeetl.lambdaQuery thrpt 5 187.228 ± 59.697 ops/msBeetl.one2Many thrpt 5 178.041 ± 181.829 ops/msBeetl.pageQuery thrpt 5 148.982 ± 39.327 ops/msBeetl.sqlFile thrpt 5 249.206 ± 100.083 ops/msDBVisitor.addEntity thrpt 5 99.294 ± 33.564 ops/msDBVisitor.executeJdbcSql thrpt 5 185.177 ± 50.993 ops/msDBVisitor.executeTemplateSql thrpt 5 3.189 ± 0.748 ops/msDBVisitor.getAll thrpt 5 3.163 ± 0.980 ops/msDBVisitor.getEntity thrpt 5 125.683 ± 44.190 ops/msDBVisitor.lambdaQuery thrpt 5 94.314 ± 38.499 ops/msDBVisitor.pageQuery thrpt 5 49.954 ± 18.254 ops/msEasyQuery.addEntity thrpt 5 98.904 ± 39.890 ops/msEasyQuery.complexMapping thrpt 5 67.397 ± 59.919 ops/msEasyQuery.executeJdbcSql thrpt 5 243.160 ± 48.080 ops/msEasyQuery.getAll thrpt 5 14.896 ± 2.219 ops/msEasyQuery.getEntity thrpt 5 134.370 ± 67.962 ops/msEasyQuery.lambdaQuery thrpt 5 137.292 ± 53.438 ops/msEasyQuery.one2Many thrpt 5 75.083 ± 53.738 ops/msEasyQuery.pageQuery thrpt 5 84.596 ± 46.942 ops/msFlex.addEntity thrpt 5 86.484 ± 40.022 ops/msFlex.getAll thrpt 5 2.926 ± 0.993 ops/msFlex.getEntity thrpt 5 73.445 ± 39.437 ops/msFlex.pageQuery thrpt 5 33.999 ± 26.776 ops/msJdbc.addEntity thrpt 5 225.223 ± 304.585 ops/msJdbc.executeJdbcSql thrpt 5 691.616 ± 145.280 ops/msJdbc.getAll thrpt 5 35.827 ± 7.295 ops/msJdbc.getEntity thrpt 5 678.791 ± 165.527 ops/msJpa.addEntity thrpt 5 53.219 ± 78.543 ops/msJpa.executeJdbcSql thrpt 5 60.734 ± 61.299 ops/msJpa.executeTemplateSql thrpt 5 64.478 ± 48.688 ops/msJpa.getAll thrpt 5 4.710 ± 2.062 ops/msJpa.getEntity thrpt 5 56.325 ± 53.744 ops/msJpa.one2Many thrpt 5 92.168 ± 111.591 ops/msJpa.pageQuery thrpt 5 58.756 ± 48.056 ops/msMyBatis.addEntity thrpt 5 40.533 ± 12.461 ops/msMyBatis.complexMapping thrpt 5 106.348 ± 57.688 ops/msMyBatis.executeTemplateSql thrpt 5 46.953 ± 13.541 ops/msMyBatis.getAll thrpt 5 5.394 ± 0.502 ops/msMyBatis.getEntity thrpt 5 45.303 ± 11.928 ops/msMyBatis.lambdaQuery thrpt 5 23.756 ± 13.613 ops/msMyBatis.pageQuery thrpt 5 16.190 ± 5.682 ops/msMyBatis.sqlFile thrpt 5 42.558 ± 18.025 ops/msSqlUtils.addEntity thrpt 5 232.501 ± 332.656 ops/msSqlUtils.executeJdbcSql thrpt 5 682.610 ± 171.506 ops/msSqlUtils.getAll thrpt 5 44.353 ± 4.346 ops/msSqlUtils.getEntity thrpt 5 643.873 ± 131.587 ops/msWood.addEntity thrpt 5 105.097 ± 79.961 ops/msWood.executeJdbcSql thrpt 5 127.020 ± 48.142 ops/msWood.executeTemplateSql thrpt 5 129.193 ± 44.455 ops/msWood.getAll thrpt 5 2.051 ± 0.524 ops/msWood.getEntity thrpt 5 126.104 ± 41.976 ops/msWood.lambdaQuery thrpt 5 125.013 ± 43.991 ops/msWood.pageQuery thrpt 5 220.101 ± 90.028 ops/msWood.sqlFile thrpt 5 132.431 ± 50.141 ops/ms
©软件著作权归作者所有。本站所有软件均来源于网络,仅供学习使用,请支持正版!
转载请注明出处: FQPY » BeetlSQL 3.37 宣布,增长多对多主动 Fetch

发表评论 取消回复