Как просмотреть сгенерированные операторы SQL для Android / SQLite - PullRequest
2 голосов
/ 09 января 2011

Интересно, есть ли простой способ увидеть SQL, сгенерированный классом SQLiteQueryBuilder в Android? Я хочу использовать это в целях отладки.

Я оглянулся и искал, но ничего не смог найти. Либо это не просто, либо это супер очевидно.

1 Ответ

2 голосов
/ 09 января 2011

Что он в основном делает, так это вызывает статический метод SQLiteQueryBuilder#buildQueryString, так что вы можете попытаться вызвать этот метод, передавая правильные параметры. Это , как выглядит метод:

public static String buildQueryString(
        boolean distinct, String tables, String[] columns, String where,
        String groupBy, String having, String orderBy, String limit) {
    if (TextUtils.isEmpty(groupBy) && !TextUtils.isEmpty(having)) {
        throw new IllegalArgumentException(
                "HAVING clauses are only permitted when using a groupBy clause");
    }
    if (!TextUtils.isEmpty(limit) && !sLimitPattern.matcher(limit).matches()) {
        throw new IllegalArgumentException("invalid LIMIT clauses:" + limit);
    }

    StringBuilder query = new StringBuilder(120);

    query.append("SELECT ");
    if (distinct) {
        query.append("DISTINCT ");
    }
    if (columns != null && columns.length != 0) {
        appendColumns(query, columns);
    } else {
        query.append("* ");
    }
    query.append("FROM ");
    query.append(tables);
    appendClause(query, " WHERE ", where);
    appendClause(query, " GROUP BY ", groupBy);
    appendClause(query, " HAVING ", having);
    appendClause(query, " ORDER BY ", orderBy);
    appendClause(query, " LIMIT ", limit);

    return query.toString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...