下面列出了android.database.sqlite.SQLiteQueryBuilder#query ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
queryBuilder.setTables(sqLiteOpenHelper.TABLE_NAME);
switch (uriMatcher.match(uri)){
case PLACES_ID:
queryBuilder.setProjectionMap(PlaceMap);
break;
default:
throw new IllegalArgumentException("Unknown URI " + uri);
}
if (sortOrder == null || sortOrder == ""){
sortOrder = sqLiteOpenHelper.ID;
}
Cursor cursor = queryBuilder.query(database, projection, selection,
selectionArgs, null, null, sortOrder);
cursor.setNotificationUri(getContext().getContentResolver(), uri);
return cursor;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
queryBuilder.setTables(MemoDB.MEMO_TABLE_NAME);
int uriType = sURIMatcher.match(uri);
switch (uriType) {
case ALL_MEMOS_WITH_DELETED:
break;
case MEMOS:
queryBuilder.appendWhere(MemoDB.STATUS + "!='" + Memo.STATUS_DELETE
+ "'");
break;
case MEMO_ID:
queryBuilder
.appendWhere(MemoDB.ID + "=" + uri.getLastPathSegment());
break;
default:
throw new IllegalArgumentException("Unknown URI");
}
Cursor cursor = queryBuilder.query(memoDB.getReadableDatabase(),
projection, selection, selectionArgs, null, null, sortOrder);
cursor.setNotificationUri(getContext().getContentResolver(), uri);
return cursor;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
synchronized (obj) {
SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
queryBuilder.setTables(matchTable(uri));
SQLiteDatabase db = getDBHelper().getReadableDatabase();
Cursor cursor = queryBuilder.query(db,
projection,
selection,
selectionArgs,
null,
null,
sortOrder);
cursor.setNotificationUri(getContext().getContentResolver(), uri);
return cursor;
}
}
public int getSuggestionSize() {
SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
queryBuilder.setProjectionMap(mAliasMap);
queryBuilder.setTables(TABLE2_NAME);
Cursor c = queryBuilder.query(mSearchDBOpenHelper.getReadableDatabase(),
new String[]{"_ID",
SearchManager.SUGGEST_COLUMN_TEXT_1,
SearchManager.SUGGEST_COLUMN_TEXT_2,
SearchManager.SUGGEST_COLUMN_ICON_1,
SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID,
SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA},
null, null, null, null, null, "10"
);
return c.getCount();
}
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
queryBuilder.setTables(Database.Profile.TABLE_NAME);
int uriType = URIMatcher.match(uri);
switch (uriType) {
case PROFILES:
break;
case PROFILE:
queryBuilder.appendWhere(Database.Location._ID + " = " + uri.getLastPathSegment());
break;
default:
throw new IllegalArgumentException("Unknown URI: " + uri);
}
SQLiteDatabase db = databaseHelper.getReadableDatabase();
Cursor cursor = queryBuilder.query(db, projection, selection, selectionArgs, null, null, sortOrder);
cursor.setNotificationUri(getContext().getContentResolver(), uri);
return cursor;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
queryBuilder.setTables(Database.Location.TABLE_NAME);
int uriType = URIMatcher.match(uri);
switch (uriType) {
case LOCATIONS:
break;
case LOCATION:
queryBuilder.appendWhere(Database.Location._ID + " = " + uri.getLastPathSegment());
break;
default:
throw new IllegalArgumentException("Unknown URI: " + uri);
}
SQLiteDatabase db = databaseHelper.getReadableDatabase();
Cursor cursor = queryBuilder.query(db, projection, selection, selectionArgs, null, null, sortOrder);
cursor.setNotificationUri(getContext().getContentResolver(), uri);
return cursor;
}
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
switch (URI_MATCHER.match(uri)) {
case 100:
qb.setTables(DownloadAlbumTable.TABLE_NAME);
break;
case 101:
qb.setTables(DownloadVideoTable.TABLE_NAME);
break;
case 102:
qb.setTables(ThreadInfoTable.TABLE_NAME);
break;
default:
throw new IllegalStateException("Unknown URL: " + uri.toString());
}
Cursor c = qb.query(this.mDownloadDBHelper.getReadableDatabase(), projection, selection, selectionArgs, null, null, sortOrder);
if (c != null) {
c.setNotificationUri(getContext().getContentResolver(), uri);
}
return c;
}
/**
* Return a Cursor contains all RegisteredActionParameter records which matches the parameters.
*
* @param parameterName
* is the parameter name, or null to fetch any parameterName.
* @param actionID
* is the action id, or null to fetch any actionID.
* @param dataTypeID
* is the dataType id, or null to fetch any dataTypeID.
* @return a Cursor contains all RegisteredActionParameter records which matches the parameters.
*/
public Cursor fetchAll(String parameterName, Long actionID, Long dataTypeID) {
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
qb.setTables(DATABASE_TABLE);
qb.appendWhere("1=1");
if (parameterName != null) {
qb.appendWhere(" AND " + KEY_ACTIONPARAMETERNAME + " = ");
qb.appendWhereEscapeString(parameterName);
}
if (actionID != null) {
qb.appendWhere(" AND " + KEY_ACTIONID + " = " + actionID);
}
if (dataTypeID != null) {
qb.appendWhere(" AND " + KEY_DATATYPEID + " = " + dataTypeID);
}
// Not using additional selections, selectionArgs, groupBy, having, orderBy, set them to null.
return qb.query(database, KEYS, null, null, null, null, null);
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
SqlArguments args = new SqlArguments(uri, selection, selectionArgs);
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
qb.setTables(args.table);
SQLiteDatabase db = mOpenHelper.getWritableDatabase();
Cursor result = qb.query(db, projection, args.where, args.args, null, null, sortOrder);
result.setNotificationUri(getContext().getContentResolver(), uri);
return result;
}
public Cursor getIngredientsByRecipe(Uri uri) {
SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
queryBuilder.setTables(RecipeTable.TABLE + ", " + RecipeIngredientTable.TABLE);
queryBuilder.appendWhere(RecipeTable.ID + "='" + uri.getLastPathSegment() + "' AND " + RecipeIngredientTable.RECIPE_ID + "=" + RecipeTable.ID + "");
String[] projection = {RecipeIngredientTable.AMOUNT, RecipeIngredientTable.DESCRIPTION};
SQLiteDatabase db = database.getReadableDatabase();
Cursor cursor = queryBuilder.query(db, projection, null, null, null, null, null);
cursor.setNotificationUri(getContext().getContentResolver(), uri);
return cursor;
}
/**
* Returns list of puzzle folders.
*
* @return
*/
public Cursor getFolderList() {
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
qb.setTables(FOLDER_TABLE_NAME);
SQLiteDatabase db = mOpenHelper.getReadableDatabase();
return qb.query(db, null, null, null, null, null, "created ASC");
}
@Nullable
@Override
public Cursor query(@NonNull Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
SQLiteDatabase db = mDb.getReadableDatabase();
qb.setTables(TABLE_NAME);
Cursor c = qb.query(db, projection, selection, null, null, null, sortOrder);
c.setNotificationUri(getContext().getContentResolver(), uri);
return c;
}
/**
* Query to the the db
* @param uri
* @param projection
* @param selection
* @param selectionArgs
* @param sortOrder
* @return
*/
@Override
public Cursor query(@NonNull Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
switch (uriMatcher.match(uri)) {
case PADLIST:
qb.setTables(PAD_TABLE_NAME);
qb.setProjectionMap( PROJECTION_MAP );
break;
case PAD_ID:
qb.setTables(PAD_TABLE_NAME);
qb.appendWhere(_ID + "=" + DatabaseUtils.sqlEscapeString(uri.getPathSegments().get(1)));
break;
case PADGROUP_LIST:
qb.setTables(PADGROUP_TABLE_NAME);
qb.setProjectionMap( PROJECTION_MAP );
break;
default:
throw new IllegalArgumentException( "Unknown URI " + uri );
}
if (sortOrder == null || sortOrder.isEmpty()){
/**
* By default sort
*/
sortOrder = LAST_USED_DATE + " DESC ";
}
Cursor c = qb.query( db, projection, selection, selectionArgs, null, null, sortOrder );
/**
* register to watch a content URI for changes
*/
c.setNotificationUri( getContext().getContentResolver(), uri );
return c;
}
public BluetoothServer getBluetoothServer(long id){
SQLiteDatabase db = this.getReadableDatabase();
BluetoothServer bluetoothServer = new BluetoothServer();
bluetoothServer.setId(id);
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
qb.setTables(TABLE_SERVERS +
" JOIN " + TABLE_BLUETOOTH_SERVERS +
" USING(" + COLUMN_ID + ")");
Cursor c = qb.query(db,
new String[]{COLUMN_IS_ENABLED,
COLUMN_CERTIFICATE_ID,
COLUMN_BLUETOOTH_MAC_ADDRESS,
COLUMN_BLUETOOTH_NAME},
COLUMN_ID + "=?", new String[]{String.valueOf(id)},
null, null, null);
if (c.moveToFirst()){
bluetoothServer.setIsEnabled(intToBool(c.getInt(0)));
bluetoothServer.setCertificateId(c.getLong(1));
bluetoothServer.setBluetoothMacAddress(c.getString(2));
bluetoothServer.setBluetoothName(c.getString(3));
}
c.close();
db.close();
return bluetoothServer;
}
@Nullable
@Override
public Cursor query(@NonNull Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
SQLiteDatabase db = dbHelper.getReadableDatabase();
SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
builder.setTables(SettingsContract.TABLE);
Cursor cursor = builder.query(db, projection, null, null, null, null, null, "1");
//noinspection ConstantConditions
cursor.setNotificationUri(getContext().getContentResolver(), uri);
return cursor;
}
/**
* Handle incoming queries.
*/
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
// Constructs a new query builder and sets its table name
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
qb.setTables(MainTable.TABLE_NAME);
switch (mUriMatcher.match(uri)) {
case MAIN:
// If the incoming URI is for main table.
qb.setProjectionMap(mNotesProjectionMap);
break;
case MAIN_ID:
// The incoming URI is for a single row.
qb.setProjectionMap(mNotesProjectionMap);
qb.appendWhere(MainTable._ID + "=?");
selectionArgs = DatabaseUtilsCompat.appendSelectionArgs(selectionArgs,
new String[] { uri.getLastPathSegment() });
break;
default:
throw new IllegalArgumentException("Unknown URI " + uri);
}
if (TextUtils.isEmpty(sortOrder)) {
sortOrder = MainTable.DEFAULT_SORT_ORDER;
}
SQLiteDatabase db = mOpenHelper.getReadableDatabase();
Cursor c = qb.query(db, projection, selection, selectionArgs,
null /* no group */, null /* no filter */, sortOrder);
c.setNotificationUri(getContext().getContentResolver(), uri);
return c;
}
/**
* Returns Suggestions
*/
public synchronized Cursor getSuggestions(String[] selectionArgs) {
String selection = FIELD_title + " like ? ";
if (selectionArgs != null) {
if (!selectionArgs[0].isEmpty()) {
selectionArgs[0].replaceAll("'", "");
selectionArgs[0] = "%" + selectionArgs[0] + "%";
} else {
selection = null;
selectionArgs = null;
}
}
SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
queryBuilder.setProjectionMap(mAliasMap);
queryBuilder.setTables(TABLE2_NAME);
SQLiteDatabase db = mSearchDBOpenHelper.getReadableDatabase();
Cursor c = null;
if (db.isOpen()) {
c = queryBuilder.query(db,
new String[]{"_ID",
SearchManager.SUGGEST_COLUMN_TEXT_1,
SearchManager.SUGGEST_COLUMN_TEXT_2,
SearchManager.SUGGEST_COLUMN_ICON_1,
SearchManager.SUGGEST_COLUMN_INTENT_DATA_ID,
SearchManager.SUGGEST_COLUMN_INTENT_EXTRA_DATA},
selection,
selectionArgs,
null,
null,
FIELD_title + " asc ", "10"
);
}
return c;
}
/**
* Return a Cursor that contains all RuleAction records which matches the parameters.
*
* @param ruleID
* is id of the rule it belongs to, or null to fetch any.
* @param actionID
* is id of its action type, or null to fetch any.
* @return a Cursor that contains all RuleAction records which matches the parameters.
*/
public Cursor fetchAll(Long ruleID, Long actionID) {
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
qb.setTables(DATABASE_TABLE);
qb.appendWhere("1=1");
if (ruleID != null) {
qb.appendWhere(" AND " + KEY_RULEID + " = " + ruleID);
}
if (actionID != null) {
qb.appendWhere(" AND " + KEY_ACTIONID + " = " + actionID);
}
// Not using additional selections, selectionArgs, groupBy, having, orderBy, set them to null.
return qb.query(database, KEYS, null, null, null, null, null);
}
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
MyLog.entry("uri = " + uri);
final SQLiteDatabase db = getDbHelper().getReadableDatabase();
final CapturedPlayerFriendDescriptor.Paths path = CapturedPlayerFriendDescriptor.matchUri(uri);
final SQLiteQueryBuilder builder = new SQLiteQueryBuilder();
switch (path) {
case ALL:
builder.setTables(CapturedPlayerFriendDescriptor.TABLE_NAME);
break;
case ALL_WITH_INFO:
final Map<String, String> columnMap = new HashMap<String, String>();
fillColumnMapWithPrefix(columnMap, CapturedPlayerFriendDescriptor.TABLE_NAME, "", CapturedPlayerFriendDescriptor.Fields.values());
final StringBuilder tableBuilder = new StringBuilder(CapturedPlayerFriendDescriptor.TABLE_NAME);
final String leader1TableAlias = "L1";
fillColumnMapWithPrefix(columnMap, leader1TableAlias, CapturedPlayerFriendDescriptor.ALL_WITH_INFO_LEADER1_PREFIX, CapturedPlayerFriendLeaderDescriptor.Fields.values());
tableBuilder.append(" LEFT OUTER JOIN ").append(CapturedPlayerFriendLeaderDescriptor.TABLE_NAME).append(" ").append(leader1TableAlias);
tableBuilder.append(" ON ");
tableBuilder.append(CapturedPlayerFriendDescriptor.TABLE_NAME).append(".").append(CapturedPlayerFriendDescriptor.Fields.LEADER1_ID.getColName());
tableBuilder.append(" = ");
tableBuilder.append(leader1TableAlias).append(".").append(CapturedPlayerFriendLeaderDescriptor.Fields._ID.getColName());
tableBuilder.append("");
final String leader1InfoTableAlias = "L1_INFO";
fillColumnMapWithPrefix(columnMap, leader1InfoTableAlias, CapturedPlayerFriendDescriptor.ALL_WITH_INFO_LEADER1_INFO_PREFIX, MonsterInfoDescriptor.Fields.values());
tableBuilder.append(" LEFT OUTER JOIN ").append(MonsterInfoDescriptor.TABLE_NAME).append(" ").append(leader1InfoTableAlias);
tableBuilder.append(" ON ");
tableBuilder.append(leader1TableAlias).append(".").append(CapturedPlayerFriendLeaderDescriptor.Fields.ID_JP.getColName());
tableBuilder.append(" = ");
tableBuilder.append(leader1InfoTableAlias).append(".").append(MonsterInfoDescriptor.Fields.ID_JP.getColName());
tableBuilder.append("");
final String leader2TableAlias = "L2";
fillColumnMapWithPrefix(columnMap, leader2TableAlias, CapturedPlayerFriendDescriptor.ALL_WITH_INFO_LEADER2_PREFIX, CapturedPlayerFriendLeaderDescriptor.Fields.values());
tableBuilder.append(" LEFT OUTER JOIN ").append(CapturedPlayerFriendLeaderDescriptor.TABLE_NAME).append(" ").append(leader2TableAlias);
tableBuilder.append(" ON ");
tableBuilder.append(CapturedPlayerFriendDescriptor.TABLE_NAME).append(".").append(CapturedPlayerFriendDescriptor.Fields.LEADER2_ID.getColName());
tableBuilder.append(" = ");
tableBuilder.append(leader2TableAlias).append(".").append(CapturedPlayerFriendLeaderDescriptor.Fields._ID.getColName());
tableBuilder.append("");
final String leader2InfoTableAlias = "L2_INFO";
fillColumnMapWithPrefix(columnMap, leader2InfoTableAlias, CapturedPlayerFriendDescriptor.ALL_WITH_INFO_LEADER2_INFO_PREFIX, MonsterInfoDescriptor.Fields.values());
tableBuilder.append(" LEFT OUTER JOIN ").append(MonsterInfoDescriptor.TABLE_NAME).append(" ").append(leader2InfoTableAlias);
tableBuilder.append(" ON ");
tableBuilder.append(leader2TableAlias).append(".").append(CapturedPlayerFriendLeaderDescriptor.Fields.ID_JP.getColName());
tableBuilder.append(" = ");
tableBuilder.append(leader2InfoTableAlias).append(".").append(MonsterInfoDescriptor.Fields.ID_JP.getColName());
tableBuilder.append("");
builder.setTables(tableBuilder.toString());
builder.setProjectionMap(columnMap);
break;
default:
throw new IllegalArgumentException("Unknown URI " + uri);
}
final Cursor cursor = builder.query(db, projection, selection, null, null, null, sortOrder);
cursor.setNotificationUri(getContext().getContentResolver(), uri);
MyLog.exit();
return cursor;
}
@Override
public Cursor query(
Uri url, String[] projection, String selection, String[] selectionArgs, String sort) {
if (!canAccess()) {
return null;
}
SQLiteQueryBuilder queryBuilder = new SQLiteQueryBuilder();
String sortOrder = null;
switch (getUrlType(url)) {
case TRACKPOINTS:
queryBuilder.setTables(TrackPointsColumns.TABLE_NAME);
sortOrder = sort != null ? sort : TrackPointsColumns.DEFAULT_SORT_ORDER;
break;
case TRACKPOINTS_ID:
queryBuilder.setTables(TrackPointsColumns.TABLE_NAME);
queryBuilder.appendWhere("_id=" + url.getPathSegments().get(1));
break;
case TRACKS:
queryBuilder.setTables(TracksColumns.TABLE_NAME);
sortOrder = sort != null ? sort : TracksColumns.DEFAULT_SORT_ORDER;
break;
case TRACKS_ID:
queryBuilder.setTables(TracksColumns.TABLE_NAME);
queryBuilder.appendWhere("_id=" + url.getPathSegments().get(1));
break;
case WAYPOINTS:
queryBuilder.setTables(WaypointsColumns.TABLE_NAME);
sortOrder = sort != null ? sort : WaypointsColumns.DEFAULT_SORT_ORDER;
break;
case WAYPOINTS_ID:
queryBuilder.setTables(WaypointsColumns.TABLE_NAME);
queryBuilder.appendWhere("_id=" + url.getPathSegments().get(1));
break;
default:
throw new IllegalArgumentException("Unknown url " + url);
}
Cursor cursor = queryBuilder.query(
db, projection, selection, selectionArgs, null, null, sortOrder);
cursor.setNotificationUri(getContext().getContentResolver(), url);
return cursor;
}