sql문을 활용하다보면 방금 입력한 데이터의 키가 필요한 경우가 있다. 예를 들어 작성한 글의 내용을 담은 상세페이지를 작성과 동시에 띄우고 싶을 때 useGeneratedKey를 사용할 수 있다.
@RequestMapping(value = "/update.do", method = RequestMethod.POST)
public String update(@RequestParam HashMap<String,String> params, HttpSession session) {
logger.info("params: "+ params);
int row = service.update(params);
if (row == 1) {
session.setAttribute("msg", "글 수정을 완료하였습니다.");
}
return "redirect:list.do";
}
public int write(HashMap<String, String> params) {
logger.info("글쓰기 데이터 : " + params);
BoardDTO dto = new BoardDTO();
dto.setUser_name(params.get("user_name"));
dto.setContent(params.get("content"));
dto.setSubject(params.get("subject"));
dao.write(dto);
int idx = dto.getIdx();
return idx;
}
<insert
useGeneratedKeys="true"
keyColumn="idx"
keyProperty="idx"
id="write" parameterType="HashMap" >
INSERT INTO bbs(user_name,subject,content)
VALUES(#{user_name},#{subject},#{content})
</insert>