美文网首页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