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

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源码分析

本文来自博客园,作者:mushishi,转载请注明原文链接:https://www.cnblogs.com/mushishi/p/15022081.html

原文地址:https://www.cnblogs.com/mushishi/p/15022081.html