본문 바로가기

BackEnd/Spring

[코드로 배우는 스프링 웹 프로젝트] java spring 책 목록 만들기

728x90
반응형

1. 책 목록 : 책 목록을 최신순으로 보여주게 되는 기능 (http://localhost:8080/list)

 

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
			order by insert_date desc 		
		]]>
	</select>
</mapper>

 

 

3. 책 목록 DAO 메소드 작성

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

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

...(생략)...
	//책 목록 DAO 메소드 작성
	public List<Map<String, Object>> selectList(Map<String, Object> map){
		return this.sqlSessionTemplate.selectList("book.select_list", map);
	}
}


Map<String, Object>의 목록(List)타입으로 읽어들일 수 있습니다.

 

 

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);
	}
}

 

 

5. 책 목록 서비스 인터페이스 메소드 시그니쳐 생성

   ▷ src/main/java/sample/spring/yse/BookService.java

List<Map<String, Object>> list(Map<String, Object> map);


인터페이스에 위의 코드 추가

 

 

6. 책 목록 컨트롤러 메소드 추가

   ▷ src/main/java/sample/spring/yse/BookController.java

...(생략)...
	// 책 목록 컨트롤러 메소드 추가
	@RequestMapping(value = "list")
	public ModelAndView list(@RequestParam Map<String, Object> map) {
		
		List<Map<String, Object>> list = this.bookService.list(map);
	
		ModelAndView mav = new ModelAndView();
		mav.addObject("data", list);
		mav.setViewName("/book/list");
		return mav;
	}
}

 

 

7. 책 목록 뷰 작성

   ▷ src → main → webapp → WEB-INF → views → book 우클릭 후 new → file 을 선택하고 파일 이름을 list.jsp로 생성

<%@ page pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<html>
<head>
	<title>책 목록</title>
</head>
<body>
	<h1>책 목록</h1>
	<table>
		<thead>
			<tr>
				<td>제목</td>
				<td>카테고리</td>
				<td>가격</td>
			</tr>
		</thead>
		<tbody>
			<c:forEach var="row" items="${ data }">
				<tr>
					<td><a href="/detail?bookId=${row.book_id}">
					${row.title}</a></td>
					<td>${row.category}</td>
					<td><fmt:formatNumber type="number" maxFractionDigits="3" 
					value="${row.price}" /></td>					
				</tr>
			</c:forEach>
		</tbody>
	</table>
	<p><a href="/create">생성</a></p>
</body>
</html>

 

 

8. 책 목록 화면 확인(localhost:8080/list)


localhost:8080/list로 접속하면 위와 같이 작성했던 목록이 최신 순으로 나타납니다.

 

list.jsp 파일을 생성하면 책 목록이 나열되는 화면이 나타납니다!

 

지금까지 DB에 저장되어 있던 책 목록들이 제목, 카테고리, 가격 순으로 나타나네요!

 

마지막으로 책 검색 기능을 구현 가능하도록 만들어 볼게요!!

 

많은 분들의 피드백은 언제나 환영합니다!  많은 댓글 부탁드려요~~

 

 

728x90
반응형