Android |数据存储2 SQLite存储
在Android中,使用SQLite数据库存储数据可以通过SQLiteOpenHelper
类实现。以下是一个简单的例子:
首先,创建一个继承自SQLiteOpenHelper
的帮助类:
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "mydatabase.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME = "mytable";
// 构造函数
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// 创建数据库被调用的方法
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "("
+ "ID INTEGER PRIMARY KEY AUTOINCREMENT,"
+ "NAME TEXT,"
+ "AGE INTEGER" + ")";
db.execSQL(CREATE_TABLE);
}
// 数据库版本更新时调用的方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 更新数据库的逻辑
}
}
然后,使用这个帮助类来管理数据库:
DatabaseHelper dbHelper = new DatabaseHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
// 插入数据
ContentValues cv = new ContentValues();
cv.put("NAME", "John");
cv.put("AGE", 30);
long result = db.insert(DatabaseHelper.TABLE_NAME, null, cv);
// 查询数据
Cursor cursor = db.query(DatabaseHelper.TABLE_NAME,
new String[]{"ID", "NAME", "AGE"},
"NAME = ?",
new String[]{"John"}, null, null, null);
if(cursor.moveToFirst()){
do{
int id = cursor.getInt(cursor.getColumnIndex("ID"));
String name = cursor.getString(cursor.getColumnIndex("NAME"));
int age = cursor.getInt(cursor.getColumnIndex("AGE"));
// 使用数据
}while(cursor.moveToNext());
}
// 更新数据
ContentValues updateCV = new ContentValues();
updateCV.put("AGE", 31);
int updateResult = db.update(DatabaseHelper.TABLE_NAME, updateCV, "NAME = ?", new String[]{"John"});
// 删除数据
int deleteResult = db.delete(DatabaseHelper.TABLE_NAME, "NAME = ?", new String[]{"John"});
// 关闭Cursor和数据库
cursor.close();
db.close();
以上代码展示了如何创建和管理一个简单的SQLite数据库,包括创建表、插入数据、查询数据、更新数据和删除数据。在实际应用中,你可能需要根据具体需求来扩展这个帮助类和操作数据库的逻辑。
评论已关闭