1
爲了便於調試,有沒有什麼辦法在執行下面的查詢之前打印出sql語句?打印輸出從SQLiteQueryBuilder構建的SQL語句
c = qb.query(
epgDB,
projection,
selection,
selectionArgs,
null,
null,
sortOrder);
爲了便於調試,有沒有什麼辦法在執行下面的查詢之前打印出sql語句?打印輸出從SQLiteQueryBuilder構建的SQL語句
c = qb.query(
epgDB,
projection,
selection,
selectionArgs,
null,
null,
sortOrder);
如果您已經使用了特定的SQLiteQueryBuilder方法,例如, appendWhere(),你可以簡單地通過調用buildQuery()
產生潛在的SQL語句:
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
// call qb.appendWhere(), qb.appendColumns(), qb.setProjectionMap() etc.
String sql;
sql = qb.buildQuery(null, null, null, null, null, null, null); // pre API 11
sql = qb.buildQuery(null, null, null, null, null, null); // API 11 and later
兩種方法調用buildQueryString()
結合之前已預先用自己的參數單獨的方法設置的參數。它們不會更改SQLiteQueryBuilder對象的狀態,因此在執行查詢之前可以安全使用。
謹慎的一句話:我從代碼本身學到了這一點,而javadoc並未提及使用此方法獲取SQL字符串。因此,我建議警惕會改變方法行爲的變化。