Android中的数据储存

Android中的数据存储private static final String COMMA_SEP ,private static final String SQL_CRE

Android中的数据存储
;private static final String COMMA_SEP = ",";private static final String SQL_CREATE_ENTRIES = "CREATE TABLE " + FeedReaderContract.FeedEntry.TABLE_NAME + " (" + FeedReaderContract.FeedEntry._ID + " INTEGER PRIMARY KEY," + FeedReaderContract.FeedEntry.COLUMN_NAME_ENTRY_ID + TEXT_TYPE + COMMA_SEP + FeedReaderContract.FeedEntry.COLUMN_NAME_TITLE + TEXT_TYPE + COMMA_SEP + ... // Any other options for the CREATE command " )";private static final String SQL_DELETE_ENTRIES = "DROP TABLE IF EXISTS " + TABLE_NAME_ENTRIES;

?

就好像你存储文件到设备的内部存储上一样,Android在你应用相关的私有磁盘空间上存储你的数据库数据。

你的数据是安全的,因为默认情况下其他应用无法访问这块区域。

SQLiteOpenHelper?类提供了一些有用的APIs,当你使用这个类来获取数据库的引用时,系统仅在需要时执行可能长时间的操作:创建和更新数据库,而不是在应用启动的时候执行。

你需要做的仅仅是调用?getWritableDatabase()getReadableDatabase()方法。

注意:因为它们是长时间运行的,所以请确保你在背景线程中调用:

getWritableDatabase()getReadableDatabase()

比如用?AsyncTask?或?IntentService

?

为了使用SQLiteOpenHelper,创建一个子类,然后覆盖这三个回调函数:

onCreate(),?onUpgrade()?和?onOpen()

你也可以实现?onDowngrade(),但这并不是必须的。

如下是一个对SQLiteOpenHelper的实现例子:

;Cursor c = db.query( FeedReaderContract.FeedEntry.TABLE_NAME, // The table to query projection, // The columns to return selection, // The columns for the WHERE clause selectionArgs, // The values for the WHERE clause null, // don't group the rows null, // don't filter by row groups sortOrder // The sort order );

?

?

想要看一个Cursor中的一行,可以使用?Cursor?类中的各种move方法中的一个,当你开始读取值时你必须先调用它。

一般情况下,你应该先调用moveToFirst()方法,它将把读取位置指向结果中的第一项。

对每一行,你可以通过Cursor类的get方法读取各列内容,比如?getString()或?getLong()

对每一个get方法,你必须指定你想要的列的索引,你可以通过?getColumnIndex()?或?getColumnIndexOrThrow()方法来获得索引。

比如:

;// Specify arguments in placeholder order.String[] selelectionArgs = { String.valueOf(rowId) };// Issue SQL statement.db.delete(table_name, selection, selectionArgs);

?

;String[] selectionArgs = { String.valueOf(rowId) };int count = db.update( FeedReaderDbHelper.FeedEntry.TABLE_NAME, values, selection, selectionArgs);

?

?

?

?

参考资料

《Beginning Android 4 Application Development》Chapter6:Data Persistence

Android官方文档:Training:Saving Data

http://developer.android.com/training/basics/data-storage/index.html

API Guides: Storage Options

http://developer.android.com/guide/topics/data/data-storage.html

?