SimpleJdbcInsert
INSERT SQL๋ฅผ ์ง์ ์์ฑํ์ง ์์๋ ๋๋๋ก ํธ๋ฆฌํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
private final NamedParameterJdbcTemplate template;
private final SimpleJdbcInsert jdbcInsert;
public JdbcTemplateItemRepositoryV3(DataSource dataSource) {
this.template = new NamedParameterJdbcTemplate(dataSource);
this.jdbcInsert = new SimpleJdbcInsert(dataSource)
.withTableName("item")
.usingGeneratedKeyColumns("id");
// .usingColumns("item_name", "price", "quantity"); // ์๋ต ๊ฐ๋ฅ
}
withTableName : ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํ ์ด๋ธ ๋ช ์ ์ง์ ํ๋ค.
usingGeneratedKeyColumns : key ๋ฅผ ์์ฑํ๋ PK ์ปฌ๋ผ ๋ช
์ ์ง์ ํ๋ค.
usingColumns : INSERT SQL์ ์ฌ์ฉํ ์ปฌ๋ผ์ ์ง์ ํ๋ค.
SimpleJdbcInsert ๋ ์์ฑ ์์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ค.
๋ฐ๋ผ์ ์ด๋ค ์ปฌ๋ผ์ด ์๋์ง ํ์ธ ํ ์ ์์ผ๋ฏ๋ก usingColumns ์ ์๋ตํ ์ ์๋ค.
๋ง์ฝ ํน์ ์ปฌ๋ผ๋ง ์ง์ ํด์ ์ ์ฅํ๊ณ ์ถ๋ค๋ฉด usingColumns ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
save()
public Item save(Item item) {
SqlParameterSource param = new BeanPropertySqlParameterSource(item);
Number key = jdbcInsert.executeAndReturnKey(param);
item.setId(key.longValue());
return item;
}
jdbcInsert.executeAndReturnKey(param) ์ ์ฌ์ฉํด์ INSERT SQL์ ์คํํ๊ณ ,
์์ฑ๋ ํค ๊ฐ๋ ๋งค์ฐ ํธ๋ฆฌํ๊ฒ ์กฐํํ ์ ์๋ค.
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-2/dashboard
'Spring > Spring DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์คํ๋ง DB 2ํธ] - 6. MyBatis (0) | 2023.04.09 |
---|---|
[์คํ๋ง DB 2ํธ] - 5. ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ - ํ ์คํธ (0) | 2023.04.08 |
[์คํ๋ง DB 2ํธ] - 3. JdbcTemplate - ์ด๋ฆ ์ง์ ํ๋ผ๋ฏธํฐ (0) | 2023.04.08 |
[์คํ๋ง DB 2ํธ] - 2. JdbcTemplate - ๋์ ์ฟผ๋ฆฌ ๋ฌธ์ (0) | 2023.04.07 |
[์คํ๋ง DB 2ํธ] - 1. JdbcTemplate (0) | 2023.04.06 |