sagacity-sqltoy 睿智 ORM 5.1.4、4.18.43 发版,中秋前完善极端场景诉求

栏目: 软件资讯 · 发布时间: 4年前

内容简介:开源地址: github: https://github.com/sagframe/sagacity-sqltoy gitee: https://gitee.com/sagacity/sagacity-sqltoy idea 插件(可直接在idea中检索安装): https://github.com/threefish/sqltoy-idea-plugins...

开源地址:

更新内容

1、增加findEntity可以用entity查询但返回结果类型是dto的接口方法
/**
 * @TODO 通过entity实体进行查询,但返回结果类型可自行指定
 * @param <T>
 * @param entityClass
 * @param entityQuery
 * @param resultType 指定返回非pojo的结果类型
 * @return
 */
public <T> List<T> findEntity(Class entityClass, EntityQuery entityQuery, Class<T> resultType);
2、优化IdUtil产生主键依赖的通过ip获取serverId场景,规避无网卡情况下无法获取ip的特殊情况
3、优化 sql 日志输出,减少过多的空白影响sql阅读
4、增强部分跨数据库sql函数自适应

qltoy的关键优势:

//------------------了解 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特点介绍:

  • JPA式的crud是基本共识,但sqltoy改进了update,增加了updateFetch

sagacity-sqltoy 睿智 ORM 5.1.4、4.18.43 发版,中秋前完善极端场景诉求

  • sqltoy的update、updateAll,弹性设置强制修改属性,一次性数据库交互,解决并发问题
/** * @todo 修改数据并返回数据库记录变更数量(非强制修改属性,当属性值为null不参与修改) * @param entity * @param forceUpdateProps 强制修改的字段属性 * @return Long 数据库记录变更量(插入数据量) */
public Long update(Serializable entity, String... forceUpdateProps);
	
/** * @TODO 批量修改操作,并可以指定强制修改的属性(非强制修改属性,当属性值为null不参与修改) * @param <T> * @param entities * @param forceUpdateProps * @return Long 数据库记录变更量(插入数据量) */
public <T extends Serializable> Long updateAll(List<T> entities, String... forceUpdateProps);
	
//保存或修改数据并返回数据库记录变更数量
public Long saveOrUpdate(Serializable entity, String... forceUpdateProps);
  • updateFetch: 一次交互完成锁查询、修改,并返回修改后的结果,尤其适用于库存台账、资金台账场景
// sqltoy的updateFetch是jpa没有的,可以深入了解其原理,一次交互完成查询、锁定、修改并返回修改后结果
/** * @todo 获取并锁定数据并进行修改(只支持针对单表查询,查询语句要简单) * @param queryExecutor * @param updateRowHandler * @return */
public List updateFetch(final QueryExecutor queryExecutor, final UpdateRowHandler updateRowHandler);
  • sqltoy最佳sql编写模式,便于开发和后期维护

sagacity-sqltoy 睿智 ORM 5.1.4、4.18.43 发版,中秋前完善极端场景诉求

sagacity-sqltoy 睿智 ORM 5.1.4、4.18.43 发版,中秋前完善极端场景诉求

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

sagacity-sqltoy 睿智 ORM 5.1.4、4.18.43 发版,中秋前完善极端场景诉求

  • 极致的分页,同样帮助你实现查询的性能大幅提升
  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",同时查询总记录数和单页数据,大幅提升性能
sagacity-sqltoy 睿智 ORM 5.1.4、4.18.43 发版,中秋前完善极端场景诉求
 
  • 便利的跨数据库统计计算:数据旋转
sagacity-sqltoy 睿智 ORM 5.1.4、4.18.43 发版,中秋前完善极端场景诉求
  • 便利的跨数据库统计计算:无限极分组统计(含汇总求平均)
sagacity-sqltoy 睿智 ORM 5.1.4、4.18.43 发版,中秋前完善极端场景诉求
  • 便利的跨数据库统计计算:同比环比
sagacity-sqltoy 睿智 ORM 5.1.4、4.18.43 发版,中秋前完善极端场景诉求

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Servlet与JSP核心编程

Servlet与JSP核心编程

[美]Marty Hall、Larry Brown、Yaakov Chalkin / 胡书敏 / 2009-6 / 68.00元

《Servlet与JSP核心编程(第2卷 第2版)》在第l卷的基础上,广泛涉及自定义标签库、过滤器、声明式安全、JSTL和Struts等主题,并沿袭深受读者喜爱的写作风格,通过完整、有效、资料丰富的程序来演绎目前最流行的技术和最佳实践。Java EE已经成为电子商务网站、动态网站和Web应用与服务开发的首选,作为这一平台的基础,servlet与JSP的重要性日益突出,并在极短的时间内得以迅速普及。......一起来看看 《Servlet与JSP核心编程》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

随机密码生成器
随机密码生成器

多种字符组合密码