关于Android中DatabaseHelper和Database的关系
在Android中,DatabaseHelper
通常是一个继承自SQLiteOpenHelper
的帮助类,它负责管理数据库的创建和版本管理。Database
类则负责执行具体的数据库操作,比如查询、插入、更新和删除。
以下是一个简单的DatabaseHelper
和Database
类的示例:
// DatabaseHelper.java
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 创建数据库时的初始化操作
db.execSQL("CREATE TABLE IF NOT EXISTS mytable (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, value TEXT);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 数据库版本更新时的操作
db.execSQL("DROP TABLE IF EXISTS mytable");
onCreate(db);
}
}
// Database.java
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
public class Database {
private DatabaseHelper databaseHelper;
private SQLiteDatabase db;
public Database(Context context) {
databaseHelper = new DatabaseHelper(context);
}
public void open() {
db = databaseHelper.getWritableDatabase();
}
public void close() {
db.close();
}
public long insert(String name, String value) {
ContentValues cv = new ContentValues();
cv.put("name", name);
cv.put("value", value);
return db.insert("mytable", null, cv);
}
public Cursor getAllItems() {
return db.query("mytable", new String[]{"_id", "name", "value"}, null, null, null, null, null);
}
public int update(int id, String name, String value) {
ContentValues cv = new ContentValues();
cv.put("name", name);
cv.put("value", value);
return db.update("mytable", cv, "_id=?", new String[]{String.valueOf(id)});
}
public void delete(int id) {
db.delete("mytable", "_id=?", new String[]{String.valueOf(id)});
}
}
在这个例子中,DatabaseHelper
负责创建和管理数据库,而Database
类提供了方法来执行具体的数据库操作,如插入、查询、更新和删除。这样的分层架构使得代码更加模块化,易于
评论已关闭