打算定期截一下质量报告,督促自己维持和提高代码质量
sybn util 中关于 使用 sql 查询各个数据库的业务,暂时命名为 sybn sql.
目前主要是 SqlDdlDao 和 SqlDdlStreamDao ,及其在各个数据库的实现.
包括: MongoDao / MongoStreamDao, SolrDao, EsDao, HBasesDao / HbaseStreamDao, DbutilDao(sql), DatasSqlDqlEngine / DatasSqlDqlStreamEngine 等.
SqlDdlDao 和 SqlDdlStreamDao 是在各个数据库中执行 sql 操作的接口.
目前已有多种数据库Dao实现了此接口:
另外还有用于查询 list 和 Stream 的实现类:SqlDdlDaoListImpl / SqlDdlDaoStreamAsyncImpl
另外还有针对不同数据库联合查询的实现类: SqlDdlDaoMultipleImpl
XxxGroupByUtil 和 XxxGroupByUtil 可以在各个数据库中执行 groupby 操作.
XxxGroupByStreamUtil 接收 Stream 数据, XxxGroupByUtil 接收 Iterable 数据.
目前有3种实现: mongo, solr, java
他们都支持基础的聚合函数,比如: sum,min,max,count,count distinct等
其中 java 实现已经准备了大量自定义聚合函数(UDAF),并支持业务代码随时注册新的函数.
SybnQuery 属于 sybn-core 项目
动态的查询对象,借鉴于 queryDSL 中的动态查询对象。用于动态构建查询,并用于读写不同数据库。
当我们需要把http请求参数, 组装成 sql where 条件时, 经常会遇到可选参数问题, 页面上有 10 个参数, 填了几个就几个条件.
此时一般会使用 mybatis 的 xml 或者 jpa 的 query 来解决.
本工具包已提供的与以上两种方式近似的 xml 和 query 方案, 但是在实际使用中发现还是不够满足需求.
在 es, mongo, presto, clickhouse 等数据库中 1 != “1”, 此时需要将 http 传输的 String 型参数转换为各种不同的数据类型.