在Android应用中,有多种方法可以将数据存储到本地而不使用Room Library。以下是两个常见的替代方案:
存储数据:
SharedPreferences preferences = getSharedPreferences("MY_APP", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("USER_NAME", "John Doe");
editor.putInt("USER_AGE", 30);
editor.apply();
检索数据:
SharedPreferences preferences = getSharedPreferences("MY_APP", Context.MODE_PRIVATE);
String userName = preferences.getString("USER_NAME", "");
int userAge = preferences.getInt("USER_AGE", 0);
创建数据库:
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "MY_APP.db";
private static final int DATABASE_VERSION = 1;
public MyDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE USERS " +
"(ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
"NAME TEXT, " +
"AGE INTEGER)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS USERS");
onCreate(db);
}
}
存储数据:
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("NAME", "John Doe");
values.put("AGE", 30);
long newRowId = db.insert("USERS", null, values);
检索数据:
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getReadableDatabase();
String[] projection = {"ID", "NAME", "AGE"};
Cursor cursor = db.query(
"USERS",
projection,
null,
null,
null,
null,
null
);
if (cursor != null) {
cursor.moveToFirst();