sql解析
2024-07-31 15:31:44 1 举报
SQL解析
作者其他创作
大纲/内容
TreeSearchSqlHandler将sql 处理为父子sql,加入到对应的treeSearchParam 中,并设置是否递归(是否找到递归标志)
FieldSummaryHandler进行默认的汇总工作
NestedTableDynamicConditionHandler操作类似上边
NestedTableDynamicConditionHandler取得父子sql
是否是树形查询
树形查询还要获取树形父ID配置,用于拼接子查询的sql和结果集组装,替换前文出现的TREE_PARENT嵌套子表格查询,先查子,再查parent,剩下的流程如右
是否是嵌套表格查询
针对字段类别为传变量的处理,将:var 替换为properties 中var的值若是 properties中的变量值不存在,根据in和not in或者 = 或者!=生成正则表达式替换为 IS NULL 或者 IS NOT NULL
OrderHandler处理排序字段,取出后根据sql语句选择合适位置插入
executeQuery调用execute方法,开始query语句的执行
AbstractResultSetHandler
DefaultParamHandler
StaticConditionHandler
进行基础设置,获取数据库标识,执行责任链模式的验证和处理QueryHandlerChain
通过基类AbstractDynamicConditionHandler,针对类别为表达式查询的变量,拼接表达式,替换WEHERE_REQ标识的地方,如果没有的话,就添加到最尾部,对union特别处理
1.给请求参数加入传参租户code的内置参数2.给请求参数加入传参org_divide的参数,开启组织隔离功能3.请求参数加入传参自定义扩展UC为1的参数
AbstractDynamicConditionHandler
initQueryParam
处理汇总获取输出参数列表构建汇总sql,遍历sumcolumns,对每个列,找到输出参数,添加到汇总字段中,构建汇总sql并设置到参数中保存,最后构建recordCountSql,简化,执行对应的汇总sql,并放到结果中若有分页需求,根据数据库的类型,构建分页语句最后,进行统一的总数计算执行sql
独立实现父类的jointDynamicSql,实现,父子sql都被替换,对子sql加上TREE_PARENT标签
MultiDbReplaceHandler
SqlReplaceHandler提供的由由key 到 target的替换
0 条评论
回复 删除
下一页