本文整理汇总了Java中com.alibaba.druid.sql.ast.expr.SQLPropertyExpr.getParent方法的典型用法代码示例。如果您正苦于以下问题:Java SQLPropertyExpr.getParent方法的具体用法?Java SQLPropertyExpr.getParent怎么用?Java SQLPropertyExpr.getParent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.alibaba.druid.sql.ast.expr.SQLPropertyExpr
的用法示例。
在下文中一共展示了SQLPropertyExpr.getParent方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: visit
import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr; //导入方法依赖的package包/类
/**
* 将表名替换成占位符.
*
* <p>
* 1. 如果二元表达式使用别名, 如: {@code FROM order o WHERE o.column_name = 't' },
* 则Column中的tableName为o.
* </p>
*
* <p>
* 2. 如果二元表达式使用表名, 如: {@code FROM order WHERE order.column_name = 't' },
* 则Column中的tableName为order.
* </p>
*
* @param x
* SQL属性表达式
* @return true表示继续遍历AST, false表示终止遍历AST
*/
@Override
// TODO SELECT [别名.xxx]的情况,目前都是替换成token,解析之后应该替换回去
public final boolean visit(final SQLPropertyExpr x) {
if (!(x.getParent() instanceof SQLBinaryOpExpr) && !(x.getParent() instanceof SQLSelectItem)) {
return super.visit(x);
}
if (!(x.getOwner() instanceof SQLIdentifierExpr)) {
return super.visit(x);
}
String tableOrAliasName = ((SQLIdentifierExpr) x.getOwner()).getLowerName();
if (isBinaryOperateWithAlias(x, tableOrAliasName)) {
return super.visit(x);
}
printToken(tableOrAliasName);
print(".");
print(x.getName());
return false;
}
示例2: visit
import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr; //导入方法依赖的package包/类
/**
* 将表名替换成占位符.
*
* <p>
* 1. 如果二元表达式使用别名, 如: {@code FROM order o WHERE o.column_name = 't' },
* 则Column中的tableName为o.
* </p>
*
* <p>
* 2. 如果二元表达式使用表名, 如: {@code FROM order WHERE order.column_name = 't' },
* 则Column中的tableName为order.
* </p>
*
* @param x
* SQL属性表达式
* @return true表示继续遍历AST, false表示终止遍历AST
*/
@Override
public final boolean visit(final SQLPropertyExpr x) {
if (!(x.getParent() instanceof SQLBinaryOpExpr) && !(x.getParent() instanceof SQLSelectItem)) {
return super.visit(x);
}
if (!(x.getOwner() instanceof SQLIdentifierExpr)) {
return super.visit(x);
}
String tableOrAliasName = ((SQLIdentifierExpr) x.getOwner()).getLowerName();
if (isBinaryOperateWithAlias(x, tableOrAliasName)) {
return super.visit(x);
}
printToken(tableOrAliasName);
print(".");
print(x.getName());
return false;
}
示例3: isBinaryOperateWithAlias
import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr; //导入方法依赖的package包/类
public boolean isBinaryOperateWithAlias(final SQLPropertyExpr x, final String tableOrAliasName) {
return x.getParent() instanceof SQLBinaryOpExpr
&& parseResult.findTableFromAlias(SQLUtil.getExactlyValue(tableOrAliasName)).isPresent();
}
示例4: isBinaryOperateWithAlias
import com.alibaba.druid.sql.ast.expr.SQLPropertyExpr; //导入方法依赖的package包/类
/**
* 判断SQL表达式是否为二元操作且带有别名.
*
* @param x
* 待判断的SQL表达式
* @param tableOrAliasName
* 表名称或别名
* @return 是否为二元操作且带有别名
*/
public boolean isBinaryOperateWithAlias(final SQLPropertyExpr x, final String tableOrAliasName) {
return x.getParent() instanceof SQLBinaryOpExpr
&& parseResult.findTableFromAlias(SQLUtil.getExactlyValue(tableOrAliasName)).isPresent();
}