스프링 MVC 하루만에 배우기 구판
09.01. 책 수정 기능 만들기 - 1
연서은
2024. 9. 25. 11:28
9. 책 수정 기능 만들기
9.1. 책 수정 기능 개요
책 수정을 위한 기능을 만든다.
책 수정 화면 /update?bookId=1 에서 저장 버튼을 클릭할 경우 기존 책의 정보를 갱신한다.
9.2. 책 수정 기능 쿼리 작성
책 상세 화면을 수정하는 쿼리를 작성한다.
데이터베이스에서 데이터를 수정하는 쿼리는 UPDATE다. 이렇게 사용한다.
UPDATE 테이블명 SET 컬럼들 where 조건
책 하나를 수정하기 위한 쿼리는 다음과 같다.
UPDATE book set title='제목', category='IT', price=10000 where book_id = 1
수정 쿼리를 작성한다.
src/main/resources/sqlmap/book_SQL.xml
<update id="update" parameterType="hashMap">
<![CDATA[
update book set
title = #{title},
category = #{category},
price = #{price}
where
book_id = #{bookId}
]]>
</update>
<update 태그는 수정(UPDATE) 쿼리를 실행하기 위한 마이바티스 태그다.
<update
9.3. 책 수정 기능 DAO 메소드 작성
src/main/java/sample/spring/yse/BookDao.java
public int update(Map<String, Object> map) {
return this.sqlSessionTemplate.update("book.update", map);
}
sqlSessionTemplate 객체의 update 메소드는 insert 메소드와 사용법이 동일하다. 첫번째 파라미터는 쿼리ID, 두번째 파라미터는 쿼리 파라미터이며 반환값은 영향받은 행 수이다.
9.4. 책 수정 기능 서비스 클래스 메소드 생성
src/main/java/sample/spring/yse/BookServiceImpl.java
@Override
public boolean edit(Map<String, Object> map) {
int affectRowCount = this.bookDao.update(map);
return affectRowCount == 1;
}
수정의 경우 입력과는 다르게 PK를 가져오거나 하는 절차가 필요없으므로 그저 1개의 행이 제대로 영향받았는지만 검사하면 된다.
return affectRowCount == 1;