(21) 首先从SQLParsedResult获取statement,逻辑表和物理表放入到tableMapping;创建对应的重写visitor,然后调用重写,返回重写后的sql;重写sql完成后,处理一下hint语句,最后把结果放到routerResult。
(22) 如果是多查询的sql重写,如下
也是循环进行每个重写,返回对应的sql
1.5 执行executableCheck,进行检查
检查完成后,回到ShardStatement.executeQueryWithFilter方法
组装结果ShardResultSet
1.7 有orderBy和limit的单个查询,用切分成多个的方式进行数据获取
(1) 如果是单表查询,直接设置下限为0,并调用normalSelectExecute执行原始sql
(2) 根据sql解析出parseResult
(3) 根据路由数拆分offset,后面进行count 查询
1.8 普通查询直接调用normalSelectExecute