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


Java MySqlShowIndexesStatement类代码示例

本文整理汇总了Java中com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlShowIndexesStatement的典型用法代码示例。如果您正苦于以下问题:Java MySqlShowIndexesStatement类的具体用法?Java MySqlShowIndexesStatement怎么用?Java MySqlShowIndexesStatement使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


MySqlShowIndexesStatement类属于com.alibaba.druid.sql.dialect.mysql.ast.statement包,在下文中一共展示了MySqlShowIndexesStatement类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: response

import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlShowIndexesStatement; //导入依赖的package包/类
public static void response(ServerConnection c, String stmt) {
    try {
        String table;
        String schema;
        String strWhere = "";
        //show index with where :druid has a bug :no where
        int whereIndex = stmt.toLowerCase().indexOf("where");
        if (whereIndex > 0) {
            strWhere = stmt.substring(whereIndex);
            stmt = stmt.substring(0, whereIndex);
        }
        StringBuilder sql = new StringBuilder();
        boolean changeSQL = false;
        SQLStatement statement = RouteStrategyFactory.getRouteStrategy().parserSQL(stmt);
        if (statement instanceof MySqlShowIndexesStatement) {
            MySqlShowIndexesStatement mySqlShowIndexesStatement = (MySqlShowIndexesStatement) statement;
            table = StringUtil.removeBackQuote(mySqlShowIndexesStatement.getTable().getSimpleName());
            schema = mySqlShowIndexesStatement.getDatabase() == null ? c.getSchema() : mySqlShowIndexesStatement.getDatabase().getSimpleName();
            if (schema == null) {
                c.writeErrMessage("3D000", "No database selected", ErrorCode.ER_NO_DB_ERROR);
                return;
            }
            if (mySqlShowIndexesStatement.getDatabase() != null) {
                mySqlShowIndexesStatement.setDatabase(null);
                sql.append(mySqlShowIndexesStatement.toString());
                changeSQL = true;
            }

        } else if (statement instanceof MySqlShowKeysStatement) {
            MySqlShowKeysStatement mySqlShowKeysStatement = (MySqlShowKeysStatement) statement;
            table = StringUtil.removeBackQuote(mySqlShowKeysStatement.getTable().getSimpleName());
            schema = mySqlShowKeysStatement.getDatabase() == null ? c.getSchema() : mySqlShowKeysStatement.getDatabase().getSimpleName();
            if (schema == null) {
                c.writeErrMessage("3D000", "No database selected", ErrorCode.ER_NO_DB_ERROR);
                return;
            }
            if (mySqlShowKeysStatement.getDatabase() != null) {
                mySqlShowKeysStatement.setDatabase(null);
                sql.append(mySqlShowKeysStatement.toString());
                changeSQL = true;
            }
        } else {
            c.writeErrMessage(ErrorCode.ER_PARSE_ERROR, stmt);
            return;
        }
        //show index with where :druid has a bug :no where
        if (changeSQL && whereIndex > 0 && !sql.toString().toLowerCase().contains("where")) {
            sql.append(" ");
            sql.append(strWhere);
        }
        if (DbleServer.getInstance().getSystemVariables().isLowerCaseTableNames()) {
            schema = StringUtil.removeBackQuote(schema).toLowerCase();
            table = table.toLowerCase();
        }
        SchemaInfo schemaInfo = new SchemaInfo(schema, table);
        c.routeSystemInfoAndExecuteSQL(sql.length() > 0 ? sql.toString() : stmt, schemaInfo, ServerParse.SHOW);
    } catch (Exception e) {
        c.writeErrMessage(ErrorCode.ER_PARSE_ERROR, e.toString());
    }
}
 
开发者ID:actiontech,项目名称:dble,代码行数:61,代码来源:ShowIndex.java


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