我有一个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
在这种情况下我不能抛出 a)? - 在更新之前发出查询只是为了检查该行是否存在然后更新然后查询更新的行是否更好?
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."); }