国产 sqltoy-orm 5.2.61 发版,别再 mybatis 以及 plus、plus 了!
这样的标题不少人认为sqltoy在踩mybatis,搞一踩一捧模式,所以开篇强调一下!
- 大家为什么选择mybatis,而不选JPA?不就是因为mybatis写sql灵活吗?可以自由的优化
- sqltoy真正值得肯定的是sql的编写,如果大家认为sqltoy的sql写法更科学直观便于后期维护那算不算直接否定了mybatis的核心价值点?
开源地址:
- github: https://github.com/sagframe/sagacity-sqltoy
- gitee: https://gitee.com/sagacity/sagacity-sqltoy
- idea 插件 (可直接在 idea 中检索安装): https://github.com/threefish/sqltoy-idea-plugins
- sqltoy 脚手架项目:https://gitee.com/momoljw/sss-rbac-admin
- sqltoy lambda 项目: https://gitee.com/gzghde/sqltoy-plus
更新内容
1、增加默认支持字段枚举类型(无需写typeHandler:取key的方法要求:getValue\getKey\getCode\getId四者之一)
2、支持存储过程返回多个集合
/** * @TODO 存储过程调用,outParams可以为null * @param storeSqlOrKey 可以是xml中的sqlId 或者直接{call storeName (?,?)} * @param inParamValues * @param outParamsType 可以为null * @param resultTypes 可以是VO、Map.class、LinkedHashMap.class、Array.class,null(二维List) * @return StoreResult */ public StoreResult executeMoreResultStore(String storeSqlOrKey, Object[] inParamValues, Integer[] outParamsType, Class... resultTypes);
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,让你的查询性能成几何级提升
- 极致的分页,同样帮助你实现查询的性能大幅提升
- 快速分页:@fast () 实现先取单页数据然后再关联查询,极大提升速度
- 分页优化器:page-optimize 让分页查询由两次变成 1.3~1.5 次 (用缓存实现相同查询条件的总记录数量在一定周期内无需重复查询
- sqltoy 的分页取总记录的过程不是简单的 select count (1) from (原始 sql);而是智能判断是否变成:select count (1) from 'from 后语句 ', 并自动剔除最外层的 order by
- sqltoy 支持并行查询:parallel="true",同时查询总记录数和单页数据,大幅提升性能
- 便利的跨数据库统计计算:数据旋转
- 便利的跨数据库统计计算:无限极分组统计 (含汇总求平均)
- 便利的跨数据库统计计算:同比环比
6、扩展集成

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
RXThinkCMF 敏捷开发框架 ThinkPhp8+Layui版本 v1.0.0 发布
v1.0.0 更新内容:1、搭建基于 ThinkPHP8 的项目架构;2、新增角色、菜单、节点等权限架构体系;3、新增基础用户、角色、菜单等基础模块;4、新增字典、配置等基础数据模块;5、新增广告、友链、站点等业务模块;6、新增网站配置等基础数据维护模块; 项目介绍 一款基于ThinkPHP8、Layui、MySQL等技术栈研发的敏捷开发框架,拥有整套完善的RBAC权限架构体系,以用户、角色、菜单为维度设计了一套按钮节点级别的颗粒度权限控制,官方打造了一套组件化、插件化系统核心组件,包括但不限于单图、多图上传组件、图片裁剪组件、下拉选择组件、富文本组件、单选框组件、复选框组件、日期组件、开关组件、穿梭组件、行政区划组件等,在需要使用的模块表单直接引入组件即可,实现了轻量化、敏捷化、高可用的开发模式,简化了开发方式、提高了研发效率,降低了维护成本,目前官方发行版已集成了用户、角色、菜单、职级、岗位、部门、日志、字典、配置、广告、友链、CMS文章、行政区划、通知公告、网站设置等基础模块;此外软件框架基于官方定制化模板引擎研发并集成了代码生成器,实现了一键生成CURD整个模块的增、删、改、查...
- 下一篇
Python 3.12.0 RC1 发布
Python 3.12.0 发布了第 1 个 RC 版本。 开发团队表示,进入候选版本阶段后,只接受经过 review 且修复明确错误的代码。RC2(也是最后一个候选版本)计划于 2023 年 9 月 4 日发布,而 3.12.0 的正式版本计划于 2023 年 10 月 2 日发布。 从该版本开始,3.12 系列将不进行 ABI 更改,目标是尽可能少地更改代码。 Python 3.12 中部分新的主要新特性和变化: 针对泛型类的新类型注释语法 (PEP 695) 更灵活的 f-string 解析 (PEP 701) 支持 buffer 协议 (PEP 688) 改进错误消息 改进性能 支持 Linux perf 分析器在跟踪过程中报告 Python 函数名称 根据PEP 623提案,删除了 C 语言实现 unicode 对象中被废弃的 `wstr` 和 `wstr_length` 成员 在 `unittest` 模块中,删除了一些长期被废弃的方法和类(它们从 Python 3.1 或 3.2 开始就已被废弃) 废弃的 `smtpd` 和 `distutilsd` 模块已被删除(查看P...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7