public Integer insertBook()

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")+"");
    }