请为我完善这个更新方法public Boolean updateScoreById(Integer id,Integer score)要求使用SQLiteDatabase根据id修改score,如果score比之前的大则更新,反之则不更新,请给我完整代码
时间: 2024-05-01 22:21:24 浏览: 6
好的,请参考以下代码:
```java
public Boolean updateScoreById(Integer id, Integer score) {
SQLiteDatabase db = getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT score FROM user WHERE id=?", new String[]{String.valueOf(id)});
if (cursor.moveToFirst()) {
int oldScore = cursor.getInt(0);
if (score > oldScore) {
ContentValues values = new ContentValues();
values.put("score", score);
int rows = db.update("user", values, "id=?", new String[]{String.valueOf(id)});
if (rows > 0) {
return true;
}
} else {
return false;
}
}
cursor.close();
return false;
}
```
这个方法首先通过传入的id从数据库中查询出原有的score值,如果新的score比原有的score大,则使用ContentValues更新数据库中的score值,如果更新成功,则返回true,否则返回false;如果新的score比原有的score小,则不更新并返回false。如果查询过程中没有找到对应的记录,则直接返回false。注意,这个方法需要在主线程之外执行,否则可能会抛出异常。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)