【发布时间】:2011-04-02 00:19:05
【问题描述】:
我想存储一个字符串列表,然后检索它们。我将如何使用数据库来做到这一点?
【问题讨论】:
我想存储一个字符串列表,然后检索它们。我将如何使用数据库来做到这一点?
【问题讨论】:
理想的方法是通过结构化方式让您的主要活动/服务与实用程序类交互,该工具类直接与数据库通信,而不是活动/服务本身。
通过这样做,您可以将流程模块化,使其比在一个类中完成所有操作更容易处理。具体来说,流程将遵循此
活动/服务 -> 数据库实用程序类 -> 数据库
活动通过实用程序类获取数据库结果。您可以在实用程序类中拥有所有数据库功能,例如添加、减去、编辑记录。
具体来说你需要查看 SQLiteOpenHelper
public class myDatabaseOpenHelper extends SQLiteOpenHelper {
public myDatabaseOpenHelper(Context context) {
super(context, (Database Name), null, (Database Version));
}
@Override
public void onCreate(SQLiteDatabase db) {
// create event database & category database
db.execSQL([TableCreationStatementHere]);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
要提一提的是,首先在纸上创建表格,并设置所需的关系和列名,然后构建这样的语句:
public static String CREATE_EVENTDATABASE = "CREATE TABLE " + TABLE_EVENTS
+ " ( " + COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COL_NAME + " TEXT, "
+ COL_DATE + " TEXT NOT NULL, "
+ COL_TIME + " TEXT NOT NULL, "
+ COL_DATETIME + " TEXT, "
+ COL_IMAGE + " TEXT, "
+ COL_NOTE + " TEXT, "
+ COL_REPEAT + " INTEGER, "
+ COL_REPEAT_INTERVAL + " INTEGER, "
+ COL_REMINDER + " INTEGER, "
+ COL_CATEGORY + " TEXT, "
+ COL_FLAG + " INTEGER )";
然后,在您创建表之后,只需像这样抓住数据库的句柄:
myDatabaseOpenHelper helper = new myDatabaseOpenHelper(getApplicationContext());
SQLiteDatabase database = helper.getWritableDatabase()
此行将返回一个指向您的数据库的链接,您可以根据需要在其中查询、删除、更新!
【讨论】: