Android 使用SQLite保存数据
在Android中,使用SQLite保存数据通常涉及以下步骤:
- 创建一个
SQLiteOpenHelper
子类来管理数据库的创建和版本管理。 - 使用
SQLiteDatabase
对象来执行SQL命令,如插入(INSERT)、更新(UPDATE)、删除(DELETE)和查询(SELECT)。
以下是一个简单的例子:
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
// 如果数据库不存在,这将被调用
public DatabaseHelper(Context context) {
super(context, "MyDatabase.db", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 创建表
db.execSQL("CREATE TABLE users (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, email TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 更新数据库的时候会调用
}
}
// 使用SQLiteHelper来操作数据库
DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 插入数据
ContentValues values = new ContentValues();
values.put("name", "John Doe");
values.put("email", "johndoe@example.com");
long newRowId = db.insert("users", null, values);
// 查询数据
Cursor cursor = db.query("users", new String[]{"_id", "name", "email"}, "name = ?", new String[]{"John Doe"}, null, null, null);
if(cursor.moveToFirst()){
int idIndex = cursor.getColumnIndex("_id");
int nameIndex = cursor.getColumnIndex("name");
int emailIndex = cursor.getColumnIndex("email");
do {
int id = cursor.getInt(idIndex);
String name = cursor.getString(nameIndex);
String email = cursor.getString(emailIndex);
// 处理数据
} while (cursor.moveToNext());
}
cursor.close();
// 更新数据
ContentValues updateValues = new ContentValues();
updateValues.put("email", "johndoe@anotherdomain.com");
int count = db.update("users", updateValues, "name = ?", new String[]{"John Doe"});
// 删除数据
int deletedRows = db.delete("users", "email = ?", new String[]{"johndoe@example.com"});
// 最后,确保关闭数据库连接
db.close();
在实际应用中,你需要确保在不同的线程中使用SQLiteOpenHelper,并且在完成数据库操作后关闭Cursor和SQLiteDatabase。上述代码片段提供了一个简单的例子,展示了如何使用SQLite来保存和管理数据。
评论已关闭