【发布时间】:2013-07-13 15:20:36
【问题描述】:
我有一个简单的数据库表 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."); }
【问题讨论】:
标签: java mysql spring rest jdbctemplate