Книга: Beginning Android
The simplest solution, at least in terms of the API, is
rawQuery(). Simply call it with your SQL
SELECT statement. The
SELECT statement can include positional parameters; the array of these forms your second parameter to
rawQuery(). So, we wind up with this:
Cursor c = db.rawQuery("SELECT name FROM sqlite_master WHERE type='table' AND name='constants'", null);
In this example, we actually query a SQLite system table (
sqlite_master) to see if our constants table already exists. The return value is a
Cursor, which contains methods for iterating over results (see the “Using Cursors” section).
If your queries are pretty much baked into your application, this is a very straightforward way to use them. However, it gets complicated if parts of the query are dynamic, beyond what positional parameters can really handle. For example, if the set of columns you need to retrieve is not known at compile time, puttering around concatenating column names into a comma-delimited list can be annoying — which is where
query() comes in.