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를 곧바로 리턴하는 서비스 메소드를 만든다.