当前位置: 首页>>代码示例>>Java>>正文


Java IQuery.getTableName方法代码示例

本文整理汇总了Java中com.taobao.tddl.optimizer.core.plan.query.IQuery.getTableName方法的典型用法代码示例。如果您正苦于以下问题:Java IQuery.getTableName方法的具体用法?Java IQuery.getTableName怎么用?Java IQuery.getTableName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.taobao.tddl.optimizer.core.plan.query.IQuery的用法示例。


在下文中一共展示了IQuery.getTableName方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: visit

import com.taobao.tddl.optimizer.core.plan.query.IQuery; //导入方法依赖的package包/类
@Override
public void visit(IQuery query) {
    if (query.isSubQuery() && !query.isTopQuery()) {
        sqlBuilder.append(" ( ");
    }
    if (query.isSubQuery() || query.isTopQuery()) {
        buildSelect(query);

        if (query.getTableName() == null && query.getSubQuery() == null) {
            return;
        }
        sqlBuilder.append(" from ");
    }

    if (query.getTableName() != null) {

        if (EagleeyeHelper.isTestMode()) {
            sqlBuilder.append(EagleeyeHelper.ALL_PERF_TABLE_PREFIX);
        }
        sqlBuilder.append(query.getTableName());

        if (!query.isSubQuery() && query.getAlias() != null
            && !query.getAlias().equalsIgnoreCase(query.getTableName())) {
            sqlBuilder.append(" ").append(query.getAlias());
        }
    } else if (query.getSubQuery() != null) {
        sqlBuilder.append(this.getNewVisitor(query.getSubQuery(), query.getSubQuery()).getString());
    }

    if (query.isSubQuery() || query.isTopQuery()) {
        String keyFilterStr = "";

        IFilter whereFilter = FilterUtils.and(FilterUtils.and(query.getKeyFilter(), query.getValueFilter()),
            query.getOtherJoinOnFilter());

        if (whereFilter != null) {
            MysqlPlanVisitorImpl visitor = this.getNewVisitor(whereFilter);
            keyFilterStr = visitor.getString();
        }

        if (!TStringUtil.isEmpty(keyFilterStr)) {
            sqlBuilder.append(" where ");
            sqlBuilder.append(keyFilterStr);
        }
        buildGroupBy(query);
        buildHaving(query);
        buildOrderBy(query);
        buildLimit(query);

        switch (query.getLockMode()) {
            case EXCLUSIVE_LOCK:
                sqlBuilder.append(" FOR UPDATE");
                break;
            case SHARED_LOCK:
                sqlBuilder.append(" LOCK IN SHARE MODE");
                break;
            default:
                break;
        }
    }

    if (query.isSubQuery() && !query.isTopQuery()) {
        sqlBuilder.append(" ) ");
        if (query.getAlias() != null) {
            sqlBuilder.append(" ").append(query.getAlias()).append(" ");
        }
    }
}
 
开发者ID:loye168,项目名称:tddl5,代码行数:69,代码来源:MysqlPlanVisitorImpl.java

示例2: getCursor

import com.taobao.tddl.optimizer.core.plan.query.IQuery; //导入方法依赖的package包/类
@Override
public ISchematicCursor getCursor(ExecutionContext executionContext, IndexMeta meta, IQuery iQuery)
                                                                                                   throws TddlException {
    String actualTable = iQuery.getTableName();
    return getCursor(executionContext.getTransaction(), meta, executionContext.getIsolation(), actualTable);
}
 
开发者ID:loye168,项目名称:tddl5,代码行数:7,代码来源:JE_Table.java


注:本文中的com.taobao.tddl.optimizer.core.plan.query.IQuery.getTableName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。