您可以使用以下方法来获取插入数据的id:
1. 使用JdbcTemplate的update方法,并将KeyHolder对象作为第二个参数传递,如下所示:
public int addPerson(Person person) { String sql = "INSERT INTO person(name, age) VALUES (?, ?)"; KeyHolder keyHolder = new GeneratedKeyHolder(); jdbcTemplate.update(connection -> { PreparedStatement ps = connection .prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.setString(1, person.getName()); ps.setInt(2, person.getAge()); return ps; }, keyHolder); return keyHolder.getKey().intValue(); }
2. 使用SimpleJdbcInsert类并调用executeAndReturnKey方法来将数据插入到表中,并返回自动生成的id,如下所示:
public int addPerson(Person person) { SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(jdbcTemplate) .withTableName("person") .usingGeneratedKeyColumns("id"); Map<String, Object> parameters = new HashMap<>(); parameters.put("name", person.getName()); parameters.put("age", person.getAge()); Number key = jdbcInsert.executeAndReturnKey(new MapSqlParameterSource(parameters)); return key.intValue(); }