如何在 Android 中 insert/update SQLite 数据库?
How to insert/update SQLite Database in Android?
我正在使用 SQLite 数据库在本地保存一些信息。我想每次都使用相同的用户 ID 更新行,同时为该特定用户 ID 保存新数据。但它应该将数据插入到具有新 userID 的新行中,并且插入也应该在第一次工作。
感谢您的帮助!
如果您正在使用房间数据库,您可以insert/update如下:
AppDatabase appDatabase = Room.databaseBuilder(Activity.this, AppDatabase.class, "db_name")
.fallbackToDestructiveMigration()
.allowMainThreadQueries()
.build();
DatabaseItems databaseItems = new DatabaseItems();
databaseItems.setId(userID);
databaseItems.setName(name);//set other needed data
try {
appDatabase.getDatabaseItemDAO().insertItem(databaseItems);
Toast.makeText(Activity.this, "Added", Toast.LENGTH_SHORT).show();
Log.d("TAG", "onClick: =======================> added");
} catch (Exception e) {
appDatabase.getDatabaseItemDAO().updateItem(databaseItems);
Toast.makeText(Activity.this, "Updated", Toast.LENGTH_SHORT).show();
Log.d("TAG", "onClick: ==========================> updated");
}
在这个逻辑中,如果您的数据库已经有一个带有 id 的项目,那么将在 'catch'
中调用 updateItem
你的数据库项目 DAO 应该看起来像这样:
@Dao
public interface DatabaseItemsDAO {
@Insert
void insertItem(DatabaseItems databaseItems);
@Update
void updateItem(DatabaseItems databaseItems);
}
您可以使用此代码更新特定行的数据
val db = this.writableDatabase
val values = ContentValues()
values.put(TITLE, tasks.title)
values.put(EMAIL, tasks.email)
values.put(PWD, tasks.pwd)
val success = db.update(TABLE_NAME, values, "$ID=?", arrayOf(id)).toLong()
db.close()
我正在使用 SQLite 数据库在本地保存一些信息。我想每次都使用相同的用户 ID 更新行,同时为该特定用户 ID 保存新数据。但它应该将数据插入到具有新 userID 的新行中,并且插入也应该在第一次工作。 感谢您的帮助!
如果您正在使用房间数据库,您可以insert/update如下:
AppDatabase appDatabase = Room.databaseBuilder(Activity.this, AppDatabase.class, "db_name")
.fallbackToDestructiveMigration()
.allowMainThreadQueries()
.build();
DatabaseItems databaseItems = new DatabaseItems();
databaseItems.setId(userID);
databaseItems.setName(name);//set other needed data
try {
appDatabase.getDatabaseItemDAO().insertItem(databaseItems);
Toast.makeText(Activity.this, "Added", Toast.LENGTH_SHORT).show();
Log.d("TAG", "onClick: =======================> added");
} catch (Exception e) {
appDatabase.getDatabaseItemDAO().updateItem(databaseItems);
Toast.makeText(Activity.this, "Updated", Toast.LENGTH_SHORT).show();
Log.d("TAG", "onClick: ==========================> updated");
}
在这个逻辑中,如果您的数据库已经有一个带有 id 的项目,那么将在 'catch'
中调用 updateItem你的数据库项目 DAO 应该看起来像这样:
@Dao
public interface DatabaseItemsDAO {
@Insert
void insertItem(DatabaseItems databaseItems);
@Update
void updateItem(DatabaseItems databaseItems);
}
您可以使用此代码更新特定行的数据
val db = this.writableDatabase
val values = ContentValues()
values.put(TITLE, tasks.title)
values.put(EMAIL, tasks.email)
values.put(PWD, tasks.pwd)
val success = db.update(TABLE_NAME, values, "$ID=?", arrayOf(id)).toLong()
db.close()