in sessions/next24/books-genai-vertex-springai/src/main/java/services/domain/dao/DataAccess.java [209:233]
public Integer insertBook(Integer authorId, String title, String year, ScopeType publicPrivate) {
LocalDate publicationYear = LocalDate.parse(year);
String sql = "insert into books (\n" +
" author_id,\n" +
" publication_year,\n" +
" title, scope)\n" +
"values (\n" +
" ?,\n" +
" ?,\n" +
" ?, CAST(? AS scope_type))\n";
Object[] parameters = new Object[]{authorId, publicationYear, title, publicPrivate.getValue()};
KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcTemplate.update(connection -> {
PreparedStatement ps = connection.prepareStatement(sql,
Statement.RETURN_GENERATED_KEYS);
// Set the parameters on the PreparedStatement
for (int i = 0; i < parameters.length; i++) {
ps.setObject(i + 1, parameters[i]);
}
return ps;
}, keyHolder);
return Integer.valueOf(keyHolder.getKeys().get("book_id")+"");
}