Quello che segue è il codice utilizzato per la risposta a una domanda precedente (link sotto) modificata per includere un nuovo metodo, ovvero restoreTable in DatabaseAssetHandler.java
Il metodo copierà qualsiasi tabella, come passata, dal database di cui è stato eseguito il backup (creato durante la copia di un nuovo database dalla cartella delle risorse (come nella risposta precedente)). Non include le complicazioni del controllo per vedere se la tabella passata esiste.
Apre due istanze di SQLiteDatabase, il nuovo database e il vecchio database di cui è stato eseguito il backup. Estrae tutte le righe dal vecchio database e le inserisce nella tabella con lo stesso nome nel nuovo database.
Questo metodo, da solo è :-
/**
*
* @param context The context so that the respective package is used
* @param dbname The name of the database (the old will have -backup appended)
* @param table The table from which to copy the data
*/
public static void restoreTable(Context context, String dbname, String table) {
ContentValues cv = new ContentValues();
SQLiteDatabase dbnew = SQLiteDatabase.openDatabase(context.getDatabasePath(dbname).toString(), null,SQLiteDatabase.OPEN_READWRITE);
SQLiteDatabase dbold = SQLiteDatabase.openDatabase(context.getDatabasePath(dbname + backup).toString(),null,SQLiteDatabase.OPEN_READONLY);
Cursor csr = dbold.query(table,null,null,null,null,null,null);
dbnew.beginTransaction();
while (csr.moveToNext()) {
cv.clear();
int offset = 0;
for (String column: csr.getColumnNames()) {
switch (csr.getType(offset++)){
case Cursor.FIELD_TYPE_NULL:
break;
case Cursor.FIELD_TYPE_INTEGER:
cv.put(column,csr.getLong(csr.getColumnIndex(column)));
break;
case Cursor.FIELD_TYPE_FLOAT:
cv.put(column,csr.getFloat(csr.getColumnIndex(column)));
break;
case Cursor.FIELD_TYPE_STRING:
cv.put(column,csr.getString(csr.getColumnIndex(column)));
break;
case Cursor.FIELD_TYPE_BLOB:
cv.put(column,csr.getBlob(csr.getColumnIndex(column)));
}
}
dbnew.insert(DatabaseHelper.TABLE_BOOKMARK,null,cv);
}
dbnew.setTransactionSuccessful();
dbnew.endTransaction();
csr.close();
dbnew.close();
dbold.close();
}
- Questo metodo dovrebbe essere aggiunto al codice DatabaseAssetHandler dalla risposta precedente.
Per facilitare il test di quanto sopra, sono state apportate alcune modifiche a DatabaseHelper.java , questo è ora :-
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "dictionary.db";
private static final int DB_VERSION = 2;
public static final String TABLE_DICTIONARY = "dictionary";
public static final String TABLE_BOOKMARK= "bookmark";
public static final String COL_ID = "id";
public static final String COL_WORD = "word";
public static final String COL_DEFINITION = "definition";
public static final String COL_WORID = "wordid"; //<<<<<<<<<< ADDED
public Context mcontext;
public SQLiteDatabase mDatabase;
public DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
this.mcontext = context;
Log.d("DBVERSION","The Database Version (as hard coded) is " + String.valueOf(DB_VERSION));
int dbversion = DatabaseAssetHandler.getVersionFromDBFile(context,DB_NAME);
Log.d("DBVERSION","The Database Version (as per the database file) is " + String.valueOf(dbversion));
// Copy the Database if no database exists
if (!DatabaseAssetHandler.checkDataBase(context,DB_NAME)) {
DatabaseAssetHandler.copyDataBase(context,DB_NAME,true,DB_VERSION);
} else {
if (DB_VERSION > dbversion && DatabaseAssetHandler.checkDataBase(context, DB_NAME)) {
DatabaseAssetHandler.copyDataBase(context, DB_NAME, true, DB_VERSION);
DatabaseAssetHandler.restoreTable(context,DB_NAME,TABLE_BOOKMARK); //<<<<<<<<<< ADDED for keeping the BOOKMARKS
DatabaseAssetHandler.clearForceBackups(context, DB_NAME); // Clear the backups
}
}
mDatabase = this.getWritableDatabase();
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void openDatabase() throws SQLException {
mDatabase = this.getWritableDatabase();
}
//<<<<<<<<<< ADDED to allow some bookmarks to be added
public long addBookMark(long wordid) {
ContentValues cv = new ContentValues();
cv.put(DatabaseHelper.COL_WORID,wordid);
return mDatabase.insert(DatabaseHelper.TABLE_BOOKMARK,null,cv);
}
// Added to retrieve the database name (could make DB_NAME public)
public String getDBNAME() {
return this.DB_NAME;
}
//ADDED to dump the bookmarks along with the related word and definition
public void logBookmarksWithWord() {
String table_part = TABLE_BOOKMARK +
" JOIN " + TABLE_DICTIONARY +
" ON " + COL_WORID +
" = " + TABLE_DICTIONARY + "." + COL_ID;
String[] columns = new String[]{TABLE_BOOKMARK + "." + COL_ID, COL_WORID, COL_WORD, COL_DEFINITION};
Cursor csr = mDatabase.query(table_part,columns,null,null,null,null,COL_WORD);
DatabaseUtils.dumpCursor(csr);
csr.close();
}
@Override
public synchronized void close() {
if (mDatabase != null)
mDatabase.close();
super.close();
}
}
Sono state utilizzate le stesse 2 versioni di database come nella risposta precedente. Tuttavia, l'attività di richiamo è stato aggiunto del codice aggiuntivo per a) aggiungere alcuni segnalibri quando il DB viene copiato dalla cartella delle risorse e per b) inviare sempre i segnalibri nel registro (per mostrare che vengono mantenuti).
L'attività di richiamo usato è :-
public class MainActivity extends AppCompatActivity {
DatabaseHelper mDBHlpr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDBHlpr = new DatabaseHelper(this);
Cursor csr = mDBHlpr.getWritableDatabase().query(
DatabaseHelper.TABLE_DICTIONARY,
null,null,null,null,null,null
);
DatabaseUtils.dumpCursor(csr);
//<<<<<<<<<< ADDED CODE
// Add a couple of bookmarks only if database is copied for testing
if (DatabaseUtils.queryNumEntries(mDBHlpr.mDatabase,DatabaseHelper.TABLE_BOOKMARK) < 1) {
mDBHlpr.addBookMark(1);
mDBHlpr.addBookMark(3);
}
// Always dump the bookmarks to the log
mDBHlpr.logBookmarksWithWord();
//<<<<<<<<<< END OF ADDED CODE
csr.close();
}
}
- Si noti che è stato ipotizzato che la tabella dei segnalibri, sebbene vuota (non è necessario), esista nel database preesistente. Se non esiste, fallirebbe.
Test/Risultati
Corsa 1
Questa esecuzione è per una nuova installazione dell'App e DB_VERSION è 1 (quindi il database preesistente (versione iniziale) viene copiato dalla cartella asset).
04-22 18:06:17.603 8734-8734/? D/DBVERSION: The Database Version (as hard coded) is 1
04-22 18:06:17.603 8734-8734/? D/DBVERSION: The Database Version (as per the database file) is -666666666
04-22 18:06:17.603 8734-8734/? D/DBPATH: DB Path is /data/user/0/m.example.so55711282dictionary/databases/dictionary.db
04-22 18:06:17.603 8734-8734/? D/COPYDATABASE: Initiated Copy of the database file dictionary.db from the assets folder.
04-22 18:06:17.603 8734-8734/? D/COPYDATABASE: Asset file dictionary.db found so attmepting to copy to /data/user/0/m.example.so55711282dictionary/databases/dictionary.db
04-22 18:06:17.604 8734-8734/? D/COPYDATABASE: Attempting copy of block 1 which has 4096 bytes.
04-22 18:06:17.604 8734-8734/? D/COPYDATABASE: Attempting copy of block 2 which has 4096 bytes.
04-22 18:06:17.604 8734-8734/? D/COPYDATABASE: Attempting copy of block 3 which has 4096 bytes.
04-22 18:06:17.604 8734-8734/? D/COPYDATABASE: Finished copying Database dictionary.db from the assets folder, to /data/user/0/m.example.so55711282dictionary/databases/dictionary.db12288were copied, in 3 blocks of size 4096.
04-22 18:06:17.604 8734-8734/? D/COPYDATABASE: All Streams have been flushed and closed.
04-22 18:06:17.625 8734-8734/? I/System.out: >>>>> Dumping cursor [email protected]
04-22 18:06:17.625 8734-8734/? I/System.out: 0 {
04-22 18:06:17.625 8734-8734/? I/System.out: id=1
04-22 18:06:17.625 8734-8734/? I/System.out: word=Apple
04-22 18:06:17.625 8734-8734/? I/System.out: definition=Thing that drops from an Apple Tree.
04-22 18:06:17.625 8734-8734/? I/System.out: }
04-22 18:06:17.625 8734-8734/? I/System.out: 1 {
04-22 18:06:17.625 8734-8734/? I/System.out: id=2
04-22 18:06:17.625 8734-8734/? I/System.out: word=Bucket
04-22 18:06:17.625 8734-8734/? I/System.out: definition=Hand held container with carrying hanlde.
04-22 18:06:17.625 8734-8734/? I/System.out: }
04-22 18:06:17.625 8734-8734/? I/System.out: <<<<<
04-22 18:06:17.631 8734-8734/? D/BOOKMARKDUMP: Dumping the bookmarks table to the log.
04-22 18:06:17.631 8734-8734/? I/System.out: >>>>> Dumping cursor [email protected]
04-22 18:06:17.631 8734-8734/? I/System.out: 0 {
04-22 18:06:17.631 8734-8734/? I/System.out: id=1
04-22 18:06:17.631 8734-8734/? I/System.out: wordid=1
04-22 18:06:17.631 8734-8734/? I/System.out: word=Apple
04-22 18:06:17.631 8734-8734/? I/System.out: definition=Thing that drops from an Apple Tree.
04-22 18:06:17.631 8734-8734/? I/System.out: }
04-22 18:06:17.631 8734-8734/? I/System.out: <<<<<
Corsa 2
Esegui semplicemente di nuovo senza modifiche, quindi non esiste alcun segnalibro di copia.
04-22 18:40:56.304 8858-8858/m.example.so55711282dictionary D/DBVERSION: The Database Version (as hard coded) is 1
04-22 18:40:56.304 8858-8858/m.example.so55711282dictionary D/DBVERSION: The Database Version (as per the database file) is 1
04-22 18:40:56.304 8858-8858/m.example.so55711282dictionary D/DBPATH: DB Path is /data/user/0/m.example.so55711282dictionary/databases/dictionary.db
04-22 18:40:56.308 8858-8858/m.example.so55711282dictionary I/System.out: >>>>> Dumping cursor [email protected]
04-22 18:40:56.308 8858-8858/m.example.so55711282dictionary I/System.out: 0 {
04-22 18:40:56.308 8858-8858/m.example.so55711282dictionary I/System.out: id=1
04-22 18:40:56.308 8858-8858/m.example.so55711282dictionary I/System.out: word=Apple
04-22 18:40:56.308 8858-8858/m.example.so55711282dictionary I/System.out: definition=Thing that drops from an Apple Tree.
04-22 18:40:56.308 8858-8858/m.example.so55711282dictionary I/System.out: }
04-22 18:40:56.308 8858-8858/m.example.so55711282dictionary I/System.out: 1 {
04-22 18:40:56.309 8858-8858/m.example.so55711282dictionary I/System.out: id=2
04-22 18:40:56.309 8858-8858/m.example.so55711282dictionary I/System.out: word=Bucket
04-22 18:40:56.309 8858-8858/m.example.so55711282dictionary I/System.out: definition=Hand held container with carrying hanlde.
04-22 18:40:56.309 8858-8858/m.example.so55711282dictionary I/System.out: }
04-22 18:40:56.309 8858-8858/m.example.so55711282dictionary I/System.out: <<<<<
04-22 18:40:56.309 8858-8858/m.example.so55711282dictionary D/BOOKMARKDUMP: Dumping the bookmarks table to the log.
04-22 18:40:56.309 8858-8858/m.example.so55711282dictionary I/System.out: >>>>> Dumping cursor [email protected]
04-22 18:40:56.309 8858-8858/m.example.so55711282dictionary I/System.out: 0 {
04-22 18:40:56.309 8858-8858/m.example.so55711282dictionary I/System.out: id=1
04-22 18:40:56.309 8858-8858/m.example.so55711282dictionary I/System.out: wordid=1
04-22 18:40:56.309 8858-8858/m.example.so55711282dictionary I/System.out: word=Apple
04-22 18:40:56.309 8858-8858/m.example.so55711282dictionary I/System.out: definition=Thing that drops from an Apple Tree.
04-22 18:40:56.309 8858-8858/m.example.so55711282dictionary I/System.out: }
04-22 18:40:56.309 8858-8858/m.example.so55711282dictionary I/System.out: <<<<<
Corsa 3
Nuova versione del database introdotta DB_VERSION modificata in 2 (alcune parole in più quindi il segnalibro per parola con l'id 3 ha una parola correlata). Nuova versione del DB copiata. I due segnalibri sono stati mantenuti.
04-22 18:44:58.749 8975-8975/? D/DBVERSION: The Database Version (as hard coded) is 2
04-22 18:44:58.749 8975-8975/? D/DBVERSION: The Database Version (as per the database file) is 1
04-22 18:44:58.749 8975-8975/? D/DBPATH: DB Path is /data/user/0/m.example.so55711282dictionary/databases/dictionary.db
04-22 18:44:58.749 8975-8975/? D/DBPATH: DB Path is /data/user/0/m.example.so55711282dictionary/databases/dictionary.db
04-22 18:44:58.750 8975-8975/? D/COPYDATABASE: Initiated Copy of the database file dictionary.db from the assets folder.
04-22 18:44:58.750 8975-8975/? D/COPYDATABASE: Asset file dictionary.db found so attmepting to copy to /data/user/0/m.example.so55711282dictionary/databases/dictionary.db
04-22 18:44:58.750 8975-8975/? D/COPYDATABASE: Attempting copy of block 1 which has 4096 bytes.
04-22 18:44:58.750 8975-8975/? D/COPYDATABASE: Attempting copy of block 2 which has 4096 bytes.
04-22 18:44:58.750 8975-8975/? D/COPYDATABASE: Attempting copy of block 3 which has 4096 bytes.
04-22 18:44:58.750 8975-8975/? D/COPYDATABASE: Finished copying Database dictionary.db from the assets folder, to /data/user/0/m.example.so55711282dictionary/databases/dictionary.db12288were copied, in 3 blocks of size 4096.
04-22 18:44:58.750 8975-8975/? D/COPYDATABASE: All Streams have been flushed and closed.
04-22 18:44:58.783 8975-8975/? I/System.out: >>>>> Dumping cursor [email protected]
04-22 18:44:58.784 8975-8975/? I/System.out: 0 {
04-22 18:44:58.784 8975-8975/? I/System.out: id=1
04-22 18:44:58.784 8975-8975/? I/System.out: word=Apple
04-22 18:44:58.784 8975-8975/? I/System.out: definition=Thing that drops from an Apple Tree.
04-22 18:44:58.784 8975-8975/? I/System.out: }
04-22 18:44:58.784 8975-8975/? I/System.out: 1 {
04-22 18:44:58.784 8975-8975/? I/System.out: id=2
04-22 18:44:58.784 8975-8975/? I/System.out: word=Bucket
04-22 18:44:58.784 8975-8975/? I/System.out: definition=Hand held container with carrying hanlde.
04-22 18:44:58.784 8975-8975/? I/System.out: }
04-22 18:44:58.784 8975-8975/? I/System.out: 2 {
04-22 18:44:58.784 8975-8975/? I/System.out: id=3
04-22 18:44:58.784 8975-8975/? I/System.out: word=Yelllow
04-22 18:44:58.784 8975-8975/? I/System.out: definition=A colour.
04-22 18:44:58.784 8975-8975/? I/System.out: }
04-22 18:44:58.784 8975-8975/? I/System.out: 3 {
04-22 18:44:58.784 8975-8975/? I/System.out: id=4
04-22 18:44:58.784 8975-8975/? I/System.out: word=Zebra
04-22 18:44:58.784 8975-8975/? I/System.out: definition=A balck and white, horse-like animal.
04-22 18:44:58.784 8975-8975/? I/System.out: }
04-22 18:44:58.784 8975-8975/? I/System.out: <<<<<
04-22 18:44:58.784 8975-8975/? D/BOOKMARKDUMP: Dumping the bookmarks table to the log.
04-22 18:44:58.785 8975-8975/? I/System.out: >>>>> Dumping cursor [email protected]
04-22 18:44:58.785 8975-8975/? I/System.out: 0 {
04-22 18:44:58.785 8975-8975/? I/System.out: id=1
04-22 18:44:58.785 8975-8975/? I/System.out: wordid=1
04-22 18:44:58.785 8975-8975/? I/System.out: word=Apple
04-22 18:44:58.785 8975-8975/? I/System.out: definition=Thing that drops from an Apple Tree.
04-22 18:44:58.785 8975-8975/? I/System.out: }
04-22 18:44:58.785 8975-8975/? I/System.out: 1 {
04-22 18:44:58.785 8975-8975/? I/System.out: id=2
04-22 18:44:58.785 8975-8975/? I/System.out: wordid=3
04-22 18:44:58.785 8975-8975/? I/System.out: word=Yelllow
04-22 18:44:58.785 8975-8975/? I/System.out: definition=A colour.
04-22 18:44:58.785 8975-8975/? I/System.out: }
04-22 18:44:58.785 8975-8975/? I/System.out: <<<<<
Esegui 4
Nulla è cambiato, quindi nessun segnalibro di copia DB è ancora conservato.
04-22 18:47:19.300 9047-9047/m.example.so55711282dictionary D/DBVERSION: The Database Version (as hard coded) is 2
04-22 18:47:19.300 9047-9047/m.example.so55711282dictionary D/DBVERSION: The Database Version (as per the database file) is 2
04-22 18:47:19.300 9047-9047/m.example.so55711282dictionary D/DBPATH: DB Path is /data/user/0/m.example.so55711282dictionary/databases/dictionary.db
04-22 18:47:19.302 9047-9047/m.example.so55711282dictionary I/System.out: >>>>> Dumping cursor [email protected]
04-22 18:47:19.302 9047-9047/m.example.so55711282dictionary I/System.out: 0 {
04-22 18:47:19.302 9047-9047/m.example.so55711282dictionary I/System.out: id=1
04-22 18:47:19.302 9047-9047/m.example.so55711282dictionary I/System.out: word=Apple
04-22 18:47:19.302 9047-9047/m.example.so55711282dictionary I/System.out: definition=Thing that drops from an Apple Tree.
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: }
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: 1 {
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: id=2
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: word=Bucket
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: definition=Hand held container with carrying hanlde.
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: }
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: 2 {
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: id=3
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: word=Yelllow
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: definition=A colour.
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: }
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: 3 {
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: id=4
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: word=Zebra
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: definition=A balck and white, horse-like animal.
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: }
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: <<<<<
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary D/BOOKMARKDUMP: Dumping the bookmarks table to the log.
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: >>>>> Dumping cursor [email protected]
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: 0 {
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: id=1
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: wordid=1
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: word=Apple
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: definition=Thing that drops from an Apple Tree.
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: }
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: 1 {
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: id=2
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: wordid=3
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: word=Yelllow
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: definition=A colour.
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: }
04-22 18:47:19.303 9047-9047/m.example.so55711282dictionary I/System.out: <<<<<
Esegui 5
App disinstallata. Nuova versione utilizzata. Segnalibri aggiunti come nuova versione DB MA è l'ultima, ovvero 2
04-22 18:50:55.297 9243-9243/m.example.so55711282dictionary D/DBVERSION: The Database Version (as hard coded) is 2
04-22 18:50:55.297 9243-9243/m.example.so55711282dictionary D/DBVERSION: The Database Version (as per the database file) is -666666666
04-22 18:50:55.297 9243-9243/m.example.so55711282dictionary D/DBPATH: DB Path is /data/user/0/m.example.so55711282dictionary/databases/dictionary.db
04-22 18:50:55.297 9243-9243/m.example.so55711282dictionary D/COPYDATABASE: Initiated Copy of the database file dictionary.db from the assets folder.
04-22 18:50:55.297 9243-9243/m.example.so55711282dictionary D/COPYDATABASE: Asset file dictionary.db found so attmepting to copy to /data/user/0/m.example.so55711282dictionary/databases/dictionary.db
04-22 18:50:55.297 9243-9243/m.example.so55711282dictionary D/COPYDATABASE: Attempting copy of block 1 which has 4096 bytes.
04-22 18:50:55.298 9243-9243/m.example.so55711282dictionary D/COPYDATABASE: Attempting copy of block 2 which has 4096 bytes.
04-22 18:50:55.298 9243-9243/m.example.so55711282dictionary D/COPYDATABASE: Attempting copy of block 3 which has 4096 bytes.
04-22 18:50:55.298 9243-9243/m.example.so55711282dictionary D/COPYDATABASE: Finished copying Database dictionary.db from the assets folder, to /data/user/0/m.example.so55711282dictionary/databases/dictionary.db12288were copied, in 3 blocks of size 4096.
04-22 18:50:55.298 9243-9243/m.example.so55711282dictionary D/COPYDATABASE: All Streams have been flushed and closed.
04-22 18:50:55.320 9243-9243/m.example.so55711282dictionary I/System.out: >>>>> Dumping cursor [email protected]
04-22 18:50:55.320 9243-9243/m.example.so55711282dictionary I/System.out: 0 {
04-22 18:50:55.320 9243-9243/m.example.so55711282dictionary I/System.out: id=1
04-22 18:50:55.320 9243-9243/m.example.so55711282dictionary I/System.out: word=Apple
04-22 18:50:55.320 9243-9243/m.example.so55711282dictionary I/System.out: definition=Thing that drops from an Apple Tree.
04-22 18:50:55.320 9243-9243/m.example.so55711282dictionary I/System.out: }
04-22 18:50:55.320 9243-9243/m.example.so55711282dictionary I/System.out: 1 {
04-22 18:50:55.320 9243-9243/m.example.so55711282dictionary I/System.out: id=2
04-22 18:50:55.320 9243-9243/m.example.so55711282dictionary I/System.out: word=Bucket
04-22 18:50:55.321 9243-9243/m.example.so55711282dictionary I/System.out: definition=Hand held container with carrying hanlde.
04-22 18:50:55.321 9243-9243/m.example.so55711282dictionary I/System.out: }
04-22 18:50:55.321 9243-9243/m.example.so55711282dictionary I/System.out: 2 {
04-22 18:50:55.321 9243-9243/m.example.so55711282dictionary I/System.out: id=3
04-22 18:50:55.321 9243-9243/m.example.so55711282dictionary I/System.out: word=Yelllow
04-22 18:50:55.321 9243-9243/m.example.so55711282dictionary I/System.out: definition=A colour.
04-22 18:50:55.321 9243-9243/m.example.so55711282dictionary I/System.out: }
04-22 18:50:55.321 9243-9243/m.example.so55711282dictionary I/System.out: 3 {
04-22 18:50:55.321 9243-9243/m.example.so55711282dictionary I/System.out: id=4
04-22 18:50:55.321 9243-9243/m.example.so55711282dictionary I/System.out: word=Zebra
04-22 18:50:55.321 9243-9243/m.example.so55711282dictionary I/System.out: definition=A balck and white, horse-like animal.
04-22 18:50:55.321 9243-9243/m.example.so55711282dictionary I/System.out: }
04-22 18:50:55.321 9243-9243/m.example.so55711282dictionary I/System.out: <<<<<
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary D/BOOKMARKDUMP: Dumping the bookmarks table to the log.
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary I/System.out: >>>>> Dumping cursor [email protected]
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary I/System.out: 0 {
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary I/System.out: id=1
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary I/System.out: wordid=1
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary I/System.out: word=Apple
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary I/System.out: definition=Thing that drops from an Apple Tree.
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary I/System.out: }
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary I/System.out: 1 {
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary I/System.out: id=2
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary I/System.out: wordid=3
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary I/System.out: word=Yelllow
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary I/System.out: definition=A colour.
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary I/System.out: }
04-22 18:50:55.328 9243-9243/m.example.so55711282dictionary I/System.out: <<<<<