本文整理汇总了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());
}
}