11.01. 책 목록 만들기 - 1

11.1. 책 목록 개요

책 목록을 보여주기 위한 기능을 만든다.
브라우저에서 /list 주소에 접속하면 책 목록이 보여진다.
책 목록은 최신순으로 보여지게 된다.

11.2. 책 목록 쿼리 작성

src/main/resources/sqlmap/book_SQL.xml

<select id="select_list" parameterType="hashMap" resultType="hashMap">  
<![CDATA[  
select  
book_id,  
title,  
category,  
price,  
insert_date  
from  
book  
order by insert_date desc  
]]>  
</select>  

목록의 경우에도 resultType은 한 행을 담는 타입을 지정한다. 책 상세와 동일하다.

resultType="hashMap"  

쿼리에서 정렬을 하기 위해서는 order by 구문을 사용한다.
작은 순서부터 정렬하기 위해서는 아래 코드와 같이 쓸 수 있다. 날짜의 경우 오래된 순부터 정렬되며. asc는 생략 가능하다.

 
order by insert_date asc  

큰 순서부터 정렬하기 위해서는 아래 코드와 같이 사용한다. 날짜의 경우 최신 순부터 정렬되며 desc는 생략할 수 없다.

order by insert_date desc  

11.3. 책 목록 DAO 메소드 작성

책 목록 데이터베이스에 접속하는 메소드를 작성한다.

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

public List<Map<String, Object>> selectList(Map<String, Object> map) {  
return this.sqlSessionTemplate.selectList("book.select_list", map);  
}  

쿼리 결과를 목록으로 받기 위해서는 sqlSessionTemplate.selectList를 사용할 수 있다. 첫번째 파라미터는 쿼리ID, 두번째 ID는 쿼리 파라미터다.

sqlSessionTemplate.selectList("book.select_list", map)  

sqlSessionTemplate.selectList 메소드는 결과 집합 목록을 반환한다. 따라서 결과 집합 타입인 Map<String, Object>의 목록 List 타입으로 읽어들일 수 있다.

List<Map<String, Object>>  

11.4. 책 목록 서비스 클래스 메소드 생성

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

@Override  
public List<Map<String, Object>> list(Map<String, Object> map){  
return this.bookDao.selectList(map);  
}  

책 목록 DAO를 곧바로 리턴하는 서비스 메소드를 만든다.