新一代国产 ORM 框架 sagacity-sqltoy-5.2.10 发版


开源地址:

  • github: https://github.com/sagframe/sagacity-sqltoy
  • gitee: https://gitee.com/sagacity/sagacity-sqltoy
  • idea 插件 (可直接在 idea 中检索安装):  https://github.com/threefish/sqltoy-idea-plugins

更新内容

1、增加h2数据库的支持,便于开展项目测试
2、getTranslateCache支持返回Map类型
3、优化loadAll功能,按照查询顺序输出结果
4、增加sql自定义处理拦截器用于进行类似租户过滤等(beta),spring.sqltoy.sqlInterceptors数组
 

public interface SqlInterceptor {
    /**
     * @TODO 对最终执行sql和sql参数进行处理
     * @param sqlToyContext 支持getEntityMeta(tableName)获取表信息
     * @param sqlToyConfig  传递原本的sql配置,可以通过获取paramNames判断是否sql中已经有相关参数
     * @param operateType search\page\top\random\count 等,
     * @param sqlToyResult 存放了最终的sql 和paramValues
     * @param entityClass 对象crud操作对应的pojo类型(仅对象crud有值)
     * @param dbType 当前数据库类型,通过DBType.xxx 进行对比
     * @return
     */
    public default SqlToyResult decorate(SqlToyContext sqlToyContext,SqlToyConfig sqlToyConfig,  OperateType operateType, SqlToyResult sqlToyResult,Class entityClass,Integer dbType) {
    /**
     * 注意: 开启sqlToyContext.getEntityMeta(tableName)获得pojo的注解(表字段等),需要设置
     * spring.sqltoy.packagesToScan 数组属性(pojo的路径),让sqltoy启动时主动加载pojo
     */
    return sqlToyResult;
    }
}

 

sqltoy 的关键优势:

//------------------了解 sqltoy的关键优势: -------------------------------------------------------------------------------------------*/
//1、最简最直观的sql编写方式(不仅仅是查询语句),采用条件参数前置处理规整法,让sql语句部分跟客户端保持高度一致
//2、sql中支持注释(规避了对hint特性的影响,知道hint吗?搜oracle hint),和动态更新加载,便于开发和后期维护整个过程的管理
//3、支持缓存翻译和反向缓存条件检索(通过缓存将名称匹配成精确的key),实现sql简化和性能大幅提升
//4、支持快速分页和分页优化功能,实现分页最高级别的优化,同时还考虑到了cte多个with as情况下的优化支持
//5、支持并行查询
//6、根本杜绝sql注入问题
//7、支持行列转换、分组汇总求平均、同比环比计算,在于用算法解决复杂sql,同时也解决了sql跨数据库问题
//8、支持保留字自动适配
//9、支持跨数据库函数自适配,从而非常有利于一套代码适应多种数据库便于产品化,比如oracle的nvl,当sql在mysql环境执行时自动替换为ifnull
//10、支持分库分表
//11、提供了取top、取random记录、树形表结构构造和递归查询支持、updateFetch单次交互完成修改和查询等实用的功能
//12、sqltoy的update、save、saveAll、load 等crud操作规避了jpa的缺陷,参见update(entity,String...forceUpdateProps)和updateFetch
//13、提供了极为人性化的条件处理:排它性条件、日期条件加减和提取月末月初处理等
//14、提供了查询结果日期、数字格式化、安全脱敏处理,让复杂的事情变得简单,大幅简化sql或结果的二次处理工作
//-----------------------------------------------------------------------------------*/

sqltoy 特点介绍:

  • sqltoy 的核心构建思想

  • sqltoy 的对比 mybatis (plus) 的核心点:查询语句编写、可阅读性、可维护性

  • 对象化 crud 是基础,但 sqltoy 有针对性的改进:update、updateSaveFetch、updateFetch 等

  • sqltoy 的缓存翻译,大幅减少表关联简化 sql,让你的查询性能成几何级提升

  • 极致的分页,同样帮助你实现查询的性能大幅提升
  1. 快速分页:@fast () 实现先取单页数据然后再关联查询,极大提升速度
  2. 分页优化器:page-optimize 让分页查询由两次变成 1.3~1.5 次 (用缓存实现相同查询条件的总记录数量在一定周期内无需重复查询
  3. sqltoy 的分页取总记录的过程不是简单的 select count (1) from (原始 sql);而是智能判断是否变成:select count (1) from 'from 后语句 ', 并自动剔除最外层的 order by
  4. sqltoy 支持并行查询:parallel="true",同时查询总记录数和单页数据,大幅提升性能
 
  • 便利的跨数据库统计计算:数据旋转
  • 便利的跨数据库统计计算:无限极分组统计 (含汇总求平均)
  • 便利的跨数据库统计计算:同比环比

相关文章

2022-11-01

开源地址: github: https://github.com/sagframe/sagacity-sqltoy gitee: https://gitee.com/sagacity/sagacity-sqltoy idea 插件 (可直接在 idea 中检索安装):  https://github.com/threefish/sqltoy-idea-plugins 更新内容 1、增强错误提示,优化部分

2022-12-25

经过大半个月测试修改,paozhu c++ web framework 正式版发布, 1.0.5 release 官方第一次发布正式版,可以用于生产环境。 易用性 超越国外各种c++ web framework,简单易用,开箱即用web生态支持,新手可以快速入门。   Paozhu(炮竹

2023-01-04

开源地址: github: https://github.com/sagframe/sagacity-sqltoy gitee: https://gitee.com/sagacity/sagacity-sqltoy idea 插件 (可直接在 idea 中检索安装):  https://github.com/threefish/sqltoy-idea-plugins 更新内容 1、优化雪花算法主键策略单

2023-01-14

开源地址: github: https://github.com/sagframe/sagacity-sqltoy gitee: https://gitee.com/sagacity/sagacity-sqltoy idea 插件 (可直接在 idea 中检索安装):  https://github.com/threefish/sqltoy-idea-plugins 更新内容 1、优化并行分页,使用统一

2023-01-31

开源地址: github: https://github.com/sagframe/sagacity-sqltoy gitee: https://gitee.com/sagacity/sagacity-sqltoy idea 插件 (可直接在 idea 中检索安装):  https://github.com/threefish/sqltoy-idea-plugins 更新内容 1、优化反向缓存匹配获取精

2022-11-18

Spring Framework 6.0.0 现已正式发布。 “这是 2023 年及以后新一代框架的开始,拥抱了 OpenJDK 和 Java 生态系统中当前和即将到来的创新。同时,我们将其精心设计为针对现代运行时环境的 Spring Framework 5.3.x 的直接升级。” 作为核心

2022-11-01

,目标是提供开发高效,维护高效,运行高效的数据访问框架,它适用范围广,定制性强,写起数据库访问代码特别顺滑,不亚于 MyBatis。你不想写 SQL 也好,或者想更好地写 SQL 也好,BeetlSQL 都能满足这要求,目前支持的数据库

2022-07-05

smart-socket 是一款极简、易用、高性能的国产开源 AIO 通信框架,旨在帮助开发人员轻松打造企业级通信应用。 这个版本犹豫了许久,没有别的新特性加入,仅仅是将JDK版本适配至 11,看似为了发版而发版。 为了避免对老用户

2022-09-21

合翻译 比如爱好有篮球,足球  对应的code=[0,1] 添加国产orm beetl支持 支持的ORM框架: 1、Mybatis Plus    2、JPA    3、 TK Mybatis 4、BeetlSQL 组件介绍: 表里我们经常存放字典码,外键 。给前端展示的时候要

2022-04-07

生支持联表,可使一行代码实现复杂列表检索成为可能的国产开源软件,还不了解的同学点下面的链接哦: 我这样写代码效率提高了100倍:https://juejin.cn/post/7027733039299952676 系统教程:https://searcher.ejlchina.com/ 振兴中华,弘

2023-02-03

API。 延伸阅读 SQLAlchemy 2.0.0 正式发布,Python ORM 框架

2022-08-07

一个用 Rust 编写的高性能、安全、动态 SQL(编译时)ORM 框架,受 Mybatis 和 MybatisPlus 的启发。它提供高性能,基于 Future,带有 async_std/tokio,单线程基准测试可以轻松达到 200,000 QPS。 目前 Rbatis 4.0.0 发布了,带来如下变更:

2022-11-15

lchemy 是一个 Python 的 SQL 工具包以及数据库对象映射 (ORM) 框架。它包含整套企业级持久化模式,专门用于高效和高性能的数据库访问。 开发团队表示,对于迁移到 1.4.x 系列后内存使用量比平时大的应用程序,强烈建议升级

2022-10-26

已经成长为国家信息产业“四梁八柱”的支柱企业,中国新一代信息产业主力军之一。 随着新一代信息技术的发展,同方计算机积极开拓和布局新的技术应用,角逐互联网应用服务新舞台,推出人工智能、云计算、大数据、智