sqltoy4.16.6发版,最值得拥有的ORM

开源地址:

更新内容

1、完善SqlToyLazyDao,增加finByQuery支持锁查询

2、其他一些代码整理和注释强化

分析为什么sqltoy-orm是最值得拥有的!

您的痛点和诉求分析,我们将大多数人遇到的问题分成3个阶段:

  1. 希望拥有jpa式的对象操作的简洁舒畅,如:save(entity)updatesaveOrUpdatesaveAllupdateAll,loadById()等
  2. 希望简单的查询可以是对象链式操作模式
  3. 希望复杂的查询可以直接写sql便于sql优化,同时希望sql文件更新可以热更新
  4. 不希望有sql注入问题
  5. 希望可以方便分页
  1. 提供诸如唯一性验证、取top记录、取随机记录现成的方法
  2. 遇到一些分布式、高并发场景,考虑主键生成策略诉求,比如传统jpa的update操作无法规避null覆盖则需要先加载后更新(高并发就易导致将别人已经更新后的内容又覆盖了)
  3. 遇到产品要适用多种数据库的诉求,希望一个sql可以跑在myql、oracle、mssql、postgres等,如树结构递归查询、group_concat等函数适配
  4. 随着业务的成熟,企业的管理开始注重数据,对查询和统计要求变高(但查询往往需求会多变),所以较长的动态条件sql比重越来越大。
  5. 遇到了一些复杂统计问题,比如数据旋转、同比环比,纯sql写起来过于复杂,且换数据库又不通用
  1. 因为数据规模的扩大,老套的表分区也难以支撑,需要分表、分库了
  2. 因为大数据和高并发,对查询性能提出了极致性要求
  3. 传统数据库无法适应大规模数据和业务多样性带来的要求,需要进行领域细分,引入mongodb、elastic、clickhouse等组合使用
  1. sqltoy起初是hibernate jpa的补充,用于增强查询,后来因为不希望项目中引入太多技术,sqltoy实现了hibernate jpa的功能,同时将其不足之处进行了完善,正式称之为ORM框架!
  2. sqltoy是个人带团队给各个金融企业做项目过程中成长起来的,不同企业数据库不一样,而且金融企业数据规模基本上都是百万千万级,所以要求基础模块可以适用于不同数据库。
  3. sqltoy是经历个人负责拉卡拉支付集团数据团队时,单交易表日均1300万(2017年底),年均30亿规模的洗礼的,在大规模ETL(hive+spark跑批和流实时)的基础上结合oracle一体机、索引优化、表分区、内存表、分表分库、缓存翻译、极致分页等各种策略都难以支撑,通过融合mongo、elasticsearch、clickhouse进行组合专题化应用得以很好的解决。
  4. 从2018年sqltoy经历了目前公司erp复杂场景的洗礼,走向了成熟。
  5. 从2020年4月sqltoy对外开源推广,得到了大量的反馈,结合积极的响应和完善,sqltoy基本上完成了各种边缘场景的覆盖!

sqltoy提供了最简洁的动态sql编写

sqltoy-orm-4.16.6发版,最值得拥有的ORM

我们对比一下mybatis的实现(从可阅读、可维护等视角看)

sqltoy-orm-4.16.6发版,最值得拥有的ORM

sqltoy-orm-4.16.6发版,最值得拥有的ORM

sqltoy-orm-4.16.6发版,最值得拥有的ORM

// 使用并行查询同时执行2个sql,条件参数是2个查询的合集
String[] paramNames = new String[] { "userId", "defaultRoles", "deployId", "authObjType" };
Object[] paramValues = new Object[] { userId, defaultRoles, DEPLOY_ID,GROUP };

List> list = super.parallQuery(
		Arrays.asList(ParallQuery.create().sql("webframe_searchAllModuleMenus").resultType(TreeModel.class),
				ParallQuery.create().sql("webframe_searchAllUserReports").resultType(TreeModel.class)),
		paramNames, paramValues);
sqltoy-orm-4.16.6发版,最值得拥有的ORM

sqltoy-orm-4.16.6发版,最值得拥有的ORM

sqltoy-orm-4.16.6发版,最值得拥有的ORM

sqltoy-orm-4.16.6发版,最值得拥有的ORM

展开阅读全文

页面更新:2024-06-01

标签:链式   递归   卡拉   组合   缓存   洗礼   极致   分区   场景   阶段   规模   操作   数据库   数据   科技   企业

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top