我有一个简单的数据库表users
,它包含3个列:
| id | username | nationality |
| 1 | John | American |
| 2 | Doe | English |
我想通过POST
请求向http://mysite/users/2/nationality
发布更新。
我的初始方法是执行单个查询 UPDATE users SET nationality="French" WHERE id=2;
,然后查询更新的对象 SELECT * FROM users WHERE id=2;
,最后在响应中返回更新后的对象。
问题在于请求中传递的id
可能不存在于我的数据库中。 我应该如何验证用户是否存在于数据库中?
- 我只需检查查询是否返回一个对象吗?
- 我应该先验证受影响的行数(如果未对要更新的数据进行更改,则受影响的行数将为零,因此在这种情况下无法抛出
UserNotFoundException
)? - 在更新之前是否最好先发出查询以检查行是否存在,然后更新,最后查询更新后的行?
public void updateRecord(Long id, String username) {
String updateSql = "UPDATE users SET username = ? WHERE id = ?";
JdbcTemplate template = new JdbcTemplate(dataSource);
Object[] params = { username, id};
int[] types = {Types.VARCHAR, Types.BIGINT};
int rows = template.update(updateSql, params, types);
System.out.println(rows + " row(s) updated.");
}