JdbcTemplate
을 공부하면서 SimpleJdbcInsert
라는 클래스에 대해 알게 되었다. 이름 그대로 Insert 시 도움이 되는 구현체이다.
먼저 의존성을 주입해주기 위해 SimpleJdbcInsert 클래스를 만들어주고 해당 테이블을 지정해준다.
SimpleJdbcInsert jdbcInsert = new SimpleJdbcInsert(jt);
jdbcInsert.withTableName("members");
키를 사용하고 싶다면 .usingGeneratedKeyColumns("id")
를 추가하면 된다.
후에 Map을 이용하여 데이터를 추가해준다.
Map<String, Object> parameters = new HashMap<>();
parameters.put("id", member.getId());
parameters.put("pw", member.getPw());
parameters.put("name", member.getName());
jdbcInsert.executeAndReturnKey(parameters);
비슷하게 SqlParameterSource
를 사용할 수도 있다.
SqlParameterSource parameters = new MapSqlParameterSource()
.addValue("id", member.getId())
.addValue("pw", member.getPw())
.addValue("name", member.getName());
하지만 위의 방식은 필드가 많아질수록 내용이 길어지기 때문에 BeanPropertySqlParameterSource
를 이용하기도 한다.
SqlParameterSource parameters = new BeanPropertySqlParameterSource(member);
String id = jdbcInsert.executeAndReturnKey(parameters).toString();
끄읕