LOG
- 깃짱이랑 자동차 API 미션을 완료했다!! 미션 완료는 항상 뿌듯하다. 깃짱은 스프링을 처음 해봤다고 했는데 이번 미션동안 잘 이해한 것 같아서 대단하다.
- 컨디션이 안 좋았다. 아침에 일어날 때부터 목감기 걸린 것처럼 목이 아팠는데 낮에는 열이 났다. 주노가 타이레놀 주니까 좀 나았다. THANK YOU, JUNO... 그렇게 여기 있을 때까지는 좀 나았는데 집에 가니까 귀신같이 다시 열이 나서 약을 먹고 잤다. 열은 떨어진 것 같아 다행이다. 어제보다는 몸 상태가 나아졌다.
배운 것
JdbcTemplate
의batchupdate
public void insertPlayer(List<RacingCarStatusResponse> responses) {
List<Object[]> players = responses.stream()
.map(response -> new Object[]{
response.getName(), response.getPosition()
}).collect(Collectors.toList());
String sql = "INSERT INTO player (name, position) VALUES (?, ?)";
jdbcTemplate.batchUpdate(sql, players);
}
List<Object[]>
로 객체 리스트를 만든 후, batchUpdate
를 실행하면 된다.
GeneratedKeyHolder
KeyHolder generatedKeyHolder = new GeneratedKeyHolder();
String sql = "INSERT INTO player(name, position) VALUES(:name, :position)";
for (RacingCarStatusResponse response : responses) {
SqlParameterSource parameterSource = new BeanPropertySqlParameterSource(response);
jdbcTemplate.update(sql, parameterSource, generatedKeyHolder);
if (winnerNames.contains(response.getName())) {
int playerId = generatedKeyHolder.getKey().intValue();
winnerInsertDao.insertWinner(gameId, playerId);
}
}
update할 때 GeneratedKeyHolder
를 같이 넣으면 auto-increment 된 id를 가져올 수 있다.
궁금한 것
- 현업에서는 GET을 거의 쓰지 않고 POST만 쓰는 경우가 많다고 하는데(by 포이) 왜일까? GET의 장점은 없을까?
- GET이 되면 정보가 다 노출이 되니까 POST는 정보가 노출되지 않으니까 그런 거 아닐까 by 우가
- 근데 body 암호화 하지 않으면 GET이랑 큰 차이 없다. URL에 노출되지 않을 뿐. 암호화해서 보내는 것이 좋다.
어려웠던 것
- 컨디션 관리해야겠다.
느낀 것
- 목소리를 작게 하자...ㅋㅋㅋㅋ 목소리 작게... 어제 오늘 계속 혼나니까 앞으로는 좀 더 조용한 사람으로 살아봐야겠다...
- 집에 가면 역시나 공부를 안 한다. 그냥 잠실에 오래 남아있는 걸 목표로 해야겠다. 어제 날이 너무 춥고 컨디션도 안 좋아서 빨리 갔는데 집에서 아무것도 안 했다.