别 mybatis、plus、plus 了,国产 sagacity-sqltoy-5.2.52 发版

来源: 投稿
作者: zhongxuchen
2023-05-30 10:08:00

开源地址:

更新内容

1、针对数据库数组类型,POJO被映射成List场景(正常Array数组类型)的支持
2、修复对GaussDB sequence批量保存场景的问题修复

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,让你的查询性能成几何级提升

阐述sqltoy为什么秒杀mybatis(plus)

  • 极致的分页,同样帮助你实现查询的性能大幅提升
  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",同时查询总记录数和单页数据,大幅提升性能
阐述sqltoy为什么秒杀mybatis(plus)
 
  • 便利的跨数据库统计计算:数据旋转
阐述sqltoy为什么秒杀mybatis(plus)
  • 便利的跨数据库统计计算:无限极分组统计 (含汇总求平均)
阐述sqltoy为什么秒杀mybatis(plus)
  • 便利的跨数据库统计计算:同比环比
阐述sqltoy为什么秒杀mybatis(plus)
展开阅读全文
点击加入讨论🔥(26) 发布并加入讨论🔥
本篇精彩评论
国产区怎么和mybatis干上了,欧美区早就不折腾这玩意儿了
2023-05-30 12:03
5
举报
主要是mybatis带来了几个问题:1、大量的人见到xml就反,就觉得low,这个问题的核心是mybatis的sql写法不直观,基本就是传统java中拼sql的逻辑xml化;2、大家其实都认同单表操作jpa和简单查询QueryDSL,所以产生了大量基于mybatis的plus来做JPA功能;网上不下二十个mybatis的增强,其实这些都可以从JPA、JOOQ上得到启发,基本没有什么创新,解决项目中的实质痛点
2023-05-30 13:22
3
举报
绝对是近几年orm框架中的顶级项目,就是名字难记了点,建议项目换个简单的名字,如果是这个名字估计很难推广起来
2023-05-31 15:09
2
举报
改个好记好读的名字吧 现在这个 想拼都费劲
2023-05-30 15:10
1
举报
1、数据增删改和load,JPA化应该是被大家所认同的,而且从EJB到hibernate、JPA,已经发展了二十几年了,我想作为一个ORM具有这个能力属于应该的范畴。
2、简单多表查询QueryDSL(即lambda化)也是相对客观合理的诉求
3、复杂查询基于原生sql是非常必要的
4、项目的痛点绝大多数不是增删改和简单查询,而是复杂查询以及复杂查询产生的性能痛点和实现痛点

sqltoy自身解决了1、3、4问题,至于简单多表queryDSL则由第三方组件来完成
2023-05-30 13:30
1
举报
26 评论
7 收藏
分享
返回顶部
顶部