sql >> Base de Datos >  >> RDS >> SQLite

Android Sqlite al actualizar la tabla de eliminación de la base de datos

El siguiente es el código utilizado para la respuesta a una pregunta anterior (enlace a continuación) modificado para incluir un nuevo método, a saber, restoreTable en DatabaseAssetHandler.java

El método copiará cualquier tabla, tal como se pasa, desde la base de datos respaldada (realizada al copiar una nueva base de datos desde la carpeta de activos (según la respuesta anterior)). No incluye las complicaciones de verificar si la tabla aprobada existe.

Abre dos instancias de SQLiteDatabase, la nueva base de datos y la antigua base de datos respaldada. Extrae todas las filas de la base de datos anterior y las inserta en la tabla con el mismo nombre en la nueva base de datos.

Este método, por sí solo es:-

/**
 *
 * @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();
}
  • Debería agregarse este método al código DatabaseAssetHandler de la respuesta anterior.

Para facilitar las pruebas de lo anterior, se han realizado algunos cambios en DatabaseHelper.java , esto es ahora :-

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();
    }
}

Se usaron las mismas 2 versiones de bases de datos como en la respuesta anterior. Sin embargo, la actividad de invocación se agregó código adicional para a) agregar algunos marcadores cuando la base de datos se copia de la carpeta de activos, y para b) enviar siempre los marcadores al registro (para mostrar que se conservan).

La actividad de invocación usado es :-

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();
    }
}
  • Tenga en cuenta que se ha asumido que la tabla de marcadores, aunque esté vacía (no es necesario que esté) existe en la base de datos preexistente. Si no existe, esto fallaría.

Pruebas/Resultados

Ejecución 1

Esta ejecución es para una nueva instalación de la aplicación y DB_VERSION es 1 (por lo que la base de datos preexistente (versión inicial) se copia de la carpeta de activos).

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: <<<<<

Ejecutar 2

Simplemente vuelva a ejecutar sin cambios, por lo que no existe ningún marcador de 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: <<<<<

Ejecutar 3

Se introdujo una nueva versión de la base de datos DB_VERSION cambió a 2 (algunas palabras más para que el marcador de la palabra con el id 3 tenga una palabra relacionada). Nueva versión de DB copiada. Los dos marcadores se han conservado.

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: <<<<<

CORRE 4

Nada cambió, por lo que aún no se conservan los marcadores de copia de base de datos.

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: <<<<<

CORRE 5

Aplicación desinstalada. Nueva versión utilizada. Marcadores agregados como nueva base de datos, PERO la versión es la más reciente, es decir, 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: <<<<<