Android Sqlite onupgrade удалить таблицу из базы данных - PullRequest
0 голосов
/ 22 апреля 2019

Я использую предварительно заполненную базу данных в своем приложении, и я создал две таблицы, словарь и таблицу закладок. Таблица словаря содержит данные, которые я хочу показать, и таблица закладок сохраняет данные, если пользователь помечает что-то как избранное. Что я хочу сделать, это когда метод onupgrade называется обновить данные в таблице словаря и сохранить данные в таблице закладок. Может ли кто-нибудь дать мне пример, чтобы сделать это.

P.S. У меня нет большого опыта работы с Sqlite

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

поставьте свою задачу в onUpgrade (). Этот метод будет вызываться только при обновлении приложения. (т.е. обновление номера версии с обновлением версии базы данных.)

0 голосов
/ 22 апреля 2019

Ниже приведен код, используемый для ответа на предыдущий вопрос (ссылка ниже), в который добавлен новый метод, а именно restoreTable в DatabaseAssetHandler.java

Метод скопирует любую таблицу в том виде, в котором она была передана, из резервной копии базы данных (созданной при копировании новой базы данных из папки ресурсов (согласно предыдущему ответу)).Он не включает в себя сложности проверки, чтобы проверить, существует ли переданная таблица.

Он открывает два экземпляра SQLiteDatabase, новую базу данных и старую резервную копию базы данных.Извлекает все строки из старой базы данных и вставляет их в таблицу с тем же именем в новой базе данных.

Сам по себе этот метод: -

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

Для облегчения тестирования вышеизложенного были внесены некоторые изменения в DatabaseHelper.java , теперь это: -

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

Те же 2 версии баз данных были использованы в соответствии с предыдущим ответом.Однако к операции , вызывающей , был добавлен дополнительный код: а) добавить несколько закладок при копировании БД из папки ресурсов и б) всегда выводить закладки в журнал (чтобы показать, что они сохранены).

Используемое вызывающее действие используется: -

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();
    }
}
  • Обратите внимание, что было сделано предположение, что таблица закладок, хотя и пустая (она не нужна)t be) существует в существующей базе данных.Если он не существует, то это не получится.

Тестирование / Результаты

Прогон 1

Этот прогон предназначен для новой установки приложения, а DB_VERSION1 (поэтому существующая база данных (исходная версия) копируется из папки ресурсов).

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 android.database.sqlite.SQLiteCursor@3396ef
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 android.database.sqlite.SQLiteCursor@9ce45fc
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: <<<<<

Выполнить 2

Просто запустите снова без изменений, поэтому закладки для копирования не существует.

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 android.database.sqlite.SQLiteCursor@11697ce
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 android.database.sqlite.SQLiteCursor@3396ef
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: <<<<<

Прогон 3

В новой версии базы данных введена DB_VERSION, измененная на 2 (еще несколько слов, поэтому закладка для слова с идентификатором 3 имеет связанное слово).Новая версия БД скопирована.Две закладки были сохранены.

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 android.database.sqlite.SQLiteCursor@10862da
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 android.database.sqlite.SQLiteCursor@d4cb30b
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: <<<<<

RUN 4

Ничего не изменилось, поэтому закладки для копирования БД по-прежнему не сохраняются.

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 android.database.sqlite.SQLiteCursor@11697ce
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 android.database.sqlite.SQLiteCursor@3396ef
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: <<<<<

RUN 5

Приложение удалено.Используется новая версия. Отметки добавлены, поскольку новая версия БД, НО самая последняя, ​​т.е. 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 android.database.sqlite.SQLiteCursor@3396ef
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 android.database.sqlite.SQLiteCursor@9ce45fc
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: <<<<<
...