Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 343f581d authored by Scott Main's avatar Scott Main Committed by Android (Google) Code Review
Browse files

Merge "fix typo and clarify class references in database lesson bug: 9372560" into jb-mr1.1-ub-dev

parents b2b216e7 802254fa
Loading
Loading
Loading
Loading
+32 −34
Original line number Original line Diff line number Diff line
@@ -73,6 +73,12 @@ single table:</p>




<pre>
<pre>
public final class FeedReaderContract {
    // To prevent someone from accidentally instantiating the contract class,
    // give it an empty constructor.
    public FeedReaderContract() {}

    /* Inner class that defines the table contents */
    public static abstract class FeedEntry implements BaseColumns {
    public static abstract class FeedEntry implements BaseColumns {
        public static final String TABLE_NAME = &quot;entry&quot;;
        public static final String TABLE_NAME = &quot;entry&quot;;
        public static final String COLUMN_NAME_ENTRY_ID = &quot;entryid&quot;;
        public static final String COLUMN_NAME_ENTRY_ID = &quot;entryid&quot;;
@@ -80,15 +86,7 @@ public static abstract class FeedEntry implements BaseColumns {
        public static final String COLUMN_NAME_SUBTITLE = &quot;subtitle&quot;;
        public static final String COLUMN_NAME_SUBTITLE = &quot;subtitle&quot;;
        ...
        ...
    }
    }
</pre>
}


<p>To prevent someone from accidentally instantiating the contract class, give
it an empty constructor.  </p>

<pre>
// Prevents the FeedReaderContract class from being instantiated.
private FeedReaderContract() {}
</pre>
</pre>




@@ -103,15 +101,15 @@ statements that create and delete a table:</P>
private static final String TEXT_TYPE = &quot; TEXT&quot;;
private static final String TEXT_TYPE = &quot; TEXT&quot;;
private static final String COMMA_SEP = &quot;,&quot;;
private static final String COMMA_SEP = &quot;,&quot;;
private static final String SQL_CREATE_ENTRIES =
private static final String SQL_CREATE_ENTRIES =
    &quot;CREATE TABLE &quot; + FeedReaderContract.FeedEntry.TABLE_NAME + &quot; (&quot; +
    &quot;CREATE TABLE &quot; + FeedEntry.TABLE_NAME + &quot; (&quot; +
    FeedReaderContract.FeedEntry._ID + &quot; INTEGER PRIMARY KEY,&quot; +
    FeedEntry._ID + &quot; INTEGER PRIMARY KEY,&quot; +
    FeedReaderContract.FeedEntry.COLUMN_NAME_ENTRY_ID + TEXT_TYPE + COMMA_SEP +
    FeedEntry.COLUMN_NAME_ENTRY_ID + TEXT_TYPE + COMMA_SEP +
    FeedReaderContract.FeedEntry.COLUMN_NAME_TITLE + TEXT_TYPE + COMMA_SEP +
    FeedEntry.COLUMN_NAME_TITLE + TEXT_TYPE + COMMA_SEP +
    ... // Any other options for the CREATE command
    ... // Any other options for the CREATE command
    &quot; )&quot;;
    &quot; )&quot;;


private static final String SQL_DELETE_ENTRIES =
private static final String SQL_DELETE_ENTRIES =
    &quot;DROP TABLE IF EXISTS &quot; + TABLE_NAME_ENTRIES;
    &quot;DROP TABLE IF EXISTS &quot; + FeedEntry.TABLE_NAME;
</pre>
</pre>


<p>Just like files that you save on the device's <a
<p>Just like files that you save on the device's <a
@@ -191,15 +189,15 @@ SQLiteDatabase db = mDbHelper.getWritableDatabase();


// Create a new map of values, where column names are the keys
// Create a new map of values, where column names are the keys
ContentValues values = new ContentValues();
ContentValues values = new ContentValues();
values.put(FeedReaderContract.FeedEntry.COLUMN_NAME_ENTRY_ID, id);
values.put(FeedEntry.COLUMN_NAME_ENTRY_ID, id);
values.put(FeedReaderContract.FeedEntry.COLUMN_NAME_TITLE, title);
values.put(FeedEntry.COLUMN_NAME_TITLE, title);
values.put(FeedReaderContract.FeedEntry.COLUMN_NAME_CONTENT, content);
values.put(FeedEntry.COLUMN_NAME_CONTENT, content);


// Insert the new row, returning the primary key value of the new row
// Insert the new row, returning the primary key value of the new row
long newRowId;
long newRowId;
newRowId = db.insert(
newRowId = db.insert(
         FeedReaderContract.FeedEntry.TABLE_NAME,
         FeedEntry.TABLE_NAME,
         FeedReaderContract.FeedEntry.COLUMN_NAME_NULLABLE,
         FeedEntry.COLUMN_NAME_NULLABLE,
         values);
         values);
</pre>
</pre>


@@ -227,18 +225,18 @@ SQLiteDatabase db = mDbHelper.getReadableDatabase();
// Define a <em>projection</em> that specifies which columns from the database
// Define a <em>projection</em> that specifies which columns from the database
// you will actually use after this query.
// you will actually use after this query.
String[] projection = {
String[] projection = {
    FeedReaderContract.FeedEntry._ID,
    FeedEntry._ID,
    FeedReaderContract.FeedEntry.COLUMN_NAME_TITLE,
    FeedEntry.COLUMN_NAME_TITLE,
    FeedReaderContract.FeedEntry.COLUMN_NAME_UPDATED,
    FeedEntry.COLUMN_NAME_UPDATED,
    ...
    ...
    };
    };


// How you want the results sorted in the resulting Cursor
// How you want the results sorted in the resulting Cursor
String sortOrder =
String sortOrder =
    FeedReaderContract.FeedEntry.COLUMN_NAME_UPDATED + " DESC";
    FeedEntry.COLUMN_NAME_UPDATED + " DESC";


Cursor c = db.query(
Cursor c = db.query(
    FeedReaderContract.FeedEntry.TABLE_NAME,  // The table to query
    FeedEntry.TABLE_NAME,  // The table to query
    projection,                               // The columns to return
    projection,                               // The columns to return
    selection,                                // The columns for the WHERE clause
    selection,                                // The columns for the WHERE clause
    selectionArgs,                            // The values for the WHERE clause
    selectionArgs,                            // The values for the WHERE clause
@@ -262,7 +260,7 @@ For example:</p>
<pre>
<pre>
cursor.moveToFirst();
cursor.moveToFirst();
long itemId = cursor.getLong(
long itemId = cursor.getLong(
    cursor.getColumnIndexOrThrow(FeedReaderContract.FeedEntry._ID)
    cursor.getColumnIndexOrThrow(FeedEntry._ID)
);
);
</pre>
</pre>


@@ -282,7 +280,7 @@ immune to SQL injection.</p>


<pre>
<pre>
// Define 'where' part of query.
// Define 'where' part of query.
String selection = FeedReaderContract.FeedEntry.COLUMN_NAME_ENTRY_ID + &quot; LIKE ?&quot;;
String selection = FeedEntry.COLUMN_NAME_ENTRY_ID + &quot; LIKE ?&quot;;
// Specify arguments in placeholder order.
// Specify arguments in placeholder order.
String[] selectionArgs = { String.valueOf(rowId) };
String[] selectionArgs = { String.valueOf(rowId) };
// Issue SQL statement.
// Issue SQL statement.
@@ -305,10 +303,10 @@ SQLiteDatabase db = mDbHelper.getReadableDatabase();


// New value for one column
// New value for one column
ContentValues values = new ContentValues();
ContentValues values = new ContentValues();
values.put(FeedReaderContract.FeedEntry.COLUMN_NAME_TITLE, title);
values.put(FeedEntry.COLUMN_NAME_TITLE, title);


// Which row to update, based on the ID
// Which row to update, based on the ID
String selection = FeedReaderContract.FeedEntry.COLUMN_NAME_ENTRY_ID + &quot; LIKE ?&quot;;
String selection = FeedEntry.COLUMN_NAME_ENTRY_ID + &quot; LIKE ?&quot;;
String[] selectionArgs = { String.valueOf(rowId) };
String[] selectionArgs = { String.valueOf(rowId) };


int count = db.update(
int count = db.update(