我在我的应用程序中使用预填充数据库,我创建了两个表,字典和书签表。字典表包含我想要显示的数据,如果用户将某些内容标记为收藏夹,则书签表会保存数据。我想要做的是调用onupgrade方法更新字典表中的数据并将数据保存在Bookmark表中。任何人都可以举例说明这一点。
附:我对Sqlite没有多少经验
以下是用于上一个问题(下面的链接)的答案的代码,修改为包含一个新方法,即DatabaseAssetHandler.java中的restoreTable
该方法将复制从备份数据库传递的任何表(从资产文件夹复制新数据库时生成(根据上一个答案))。它不包括检查传递的表是否存在的复杂性。
它为新数据库和旧备份数据库打开两个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个版本的数据库。但是,调用活动添加了额外的代码,a)从资产文件夹复制数据库时添加一些书签,并且b)始终将书签输出到日志(以显示它们被保留)。
使用的调用活动是: -
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();
}
}
此运行用于App的新安装,DB_VERSION为1(因此从资产文件夹复制预先存在的数据库(初始版本))。
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: <<<<<
只需再次运行无需更改,因此不存在任何复制书签。
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: <<<<<
新版本的数据库介绍DB_VERSION更改为2(更多的单词,因此具有id 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: <<<<<
没有任何变化,因此仍然没有保留数据库副本书签。
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: <<<<<
应用已卸载。使用的新版本。添加为新DB BUT版本的书签是最新的,即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: <<<<<
把你的任务放在onUpgrade()上。只有在升级应用程序时才会调用此方法。 (即使用升级数据库版本升级版本号。)