Spring & Springboot/올인원 스프링 프레임워크

전자 도서관 프로젝트 - 전자 도서 목록 조회 구현

YJ_ma 2023. 12. 4. 15:34

관리자가 도서관에 등록된 전체 도서를 조회하는 기능이다. '전체도서' 메뉴는 'nav.jsp'에 있다.

<li><a href="<c:url value='/book/admin/getAllBooks' />">전체도서</a></li>

 

컨트롤러 기능 구현

// 전체 도서 목록
@GetMapping("/getAllBooks")
public String getAllBooks(Model model) {
    System.out.println("[BookController] getAllBooks()");

    String nextPage = "admin/book/full_list_of_books";

    List<BookVo> bookVos = bookService.getAllBooks();

    model.addAttribute("bookVos", bookVos);

    return nextPage;
}

 

서비스 기능 구현

public List<BookVo> getAllBooks(){
    System.out.println("[BookService] getAllBooks()");

    return bookDao.selectAllBooks();
}

 

DAO 기능 구현

public List<BookVo> selectAllBooks(){
    System.out.println("[BookDao] selectAllBooks()");

    String sql = "SELECT * FROM tbl_book "
            + "ORDER BY b_reg_date DESC";

    List<BookVo> books = new ArrayList<BookVo>();

    try {
        books = jdbcTemplate.query(sql, new RowMapper<BookVo>() {

            @Override
            public BookVo mapRow(ResultSet rs, int rowNum) throws SQLException {
                BookVo bookVo = new BookVo();

                bookVo.setB_no(rs.getInt("b_no"));
                bookVo.setB_thumbnail(rs.getString("b_thumbnail"));
                bookVo.setB_name(rs.getString("b_name"));
                bookVo.setB_author(rs.getString("b_author"));
                bookVo.setB_publisher(rs.getString("b_publisher"));
                bookVo.setB_publish_year(rs.getString("b_publish_year"));
                bookVo.setB_isbn(rs.getString("b_isbn"));
                bookVo.setB_call_number(rs.getString("b_call_number"));
                bookVo.setB_rantal_able(rs.getInt("b_rantal_able"));
                bookVo.setB_reg_date(rs.getString("b_reg_date"));
                bookVo.setB_mod_date(rs.getString("b_mod_date"));

                return bookVo;
            }
        });
    } catch (Exception e) {
        e.printStackTrace();
    }
    return books.size() > 0 ? books : null;
}

 

관리자 화면에서 로그인 후 '전체도서'를 클릭하면 전체 도서가 화면에 출력된다.