美文网首页Java
[zebra源码]逻辑表名的解析过程

[zebra源码]逻辑表名的解析过程

作者: holysu | 来源:发表于2021-05-01 23:21 被阅读0次

    zebra 解析sql使用的阿里druid连接池内部的 ast解析器

    SQLParser#parseInternal(SQLStatement stmt) 解析sql 语句的时候,会使用自定义 ast 的访问器 AbstractMySQLASTVisitor 去访问 SQLStatement 的 SQLExprTableSource

    @Override
    public boolean visit(SQLExprTableSource x) {
        SQLName table = (SQLName) x.getExpr();
        String simpleName = table.getSimpleName();
        String tableName = simpleName.startsWith("`") ? parseTableName(simpleName) : simpleName;
    
        result.getRouterContext().getTableSet().add(tableName);
    
        return true;
    }
    

    从而获取到逻辑表明, 填充到路由上下文 RouterContext 中供后续使用

    相关文章

      网友评论

        本文标题:[zebra源码]逻辑表名的解析过程

        本文链接:https://www.haomeiwen.com/subject/ddwzrltx.html