JdbcTemplate中的update方法返回值是什么?代码举例讲解

JdbcTemplate的update()方法用于执行INSERT、UPDATE、DELETE语句,它的返回值是受影响的行数。
例如:

String sql = "UPDATE user SET age = ? WHERE id = ?";
int count = jdbcTemplate.update(sql, 25, 1);  
  • 执行更新user表将id=1的age字段修改为25
  • count会返回1,表示有1行受影响
    如果更新的条件匹配不到任何行,count会返回0:
String sql = "UPDATE user SET age = ? WHERE id = ?";
int count = jdbcTemplate.update(sql, 25, 10);  // 条件id=10无匹配行  
// count返回0

对于插入语句,如果主键由数据库自动生成,count会返回生成的主键值:

String sql = "INSERT INTO user (name) VALUES (?)"; 
int count = jdbcTemplate.update(sql, "John");  
// count返回自动生成主键值,比如1

如果主键不是自动生成,count仍返回受影响行数1:

INSERT INTO user (id, name) VALUES (1, 'John')  
String sql = "INSERT INTO user (id, name) VALUES (?, ?)";
int count = jdbcTemplate.update(sql, 1, "John");
// count返回1  

所以,update()方法的返回值为:

  • 受影响行数:对应更新、删除操作
  • 自动生成主键:对应插入操作,当且仅当主键自动生成
  • 否则仍返回受影响行数1

这个返回值很有用,它可以判断执行结果,并在插入操作获取自动生成主键。这也避免了再执行查询语句获取主键。