07.01. 책 상세 화면 만들기 - 1

7. 책 상세 화면 만들기

7.1. 책 상세 화면 개요

책 상세 정보를 보여주기 위한 화면을 만든다.
브라우저에서 /detail?bookId=1 주소에 접속하면 책 정보를 확인할 수 있는 화면을 보여준다.

7.2. 책 상세 쿼리 작성

책 상세 화면을 조회하는 쿼리를 작성한다.
데이터베이스에서 데이터를 조회하는 쿼리는 SELECT다. 이렇게 사용한다.

SELECT 컬럼들 from 테이블명 where 조건

게시글 하나를 가져오기 위한 쿼리는 다음과 같다.

SELECT title, category, price, insert_date from book where book_id = 1

매퍼 XML에 쿼리를 옮긴다.

src/main/resources/sqlmap/book_SQL.xml

<select id="select_detail" parameterType="hashMap" resultType="hashMap">
    <![CDATA[
        select
        title,
        category,
        price,
 insert_date
        from
        book
        where
        book_id = #{bookId}   
    ]]>
</select>

7.3. 책 상세 DAO 메소드 작성

 

src/main/java/sample/spring/yse/BookDao.java

public Map<String, Object> selectDetail(Map<String, Object> map) {
    return this.sqlSessionTemplate.selectOne("book.select_detail", map);
}

sqlSessionTemplate  selectOne 메소드는 데이터를 한 개만 가져올 때 사용한다. 만약 쿼리 결과 행 수가 0개면 selectOne 메소드는 null을 반환하게 되며 쿼리 결과가 여러 개면 TooManyResultsException 예외를 던진다.