boardMapper.xml에 sql문 작성하기
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="board">
<!-- 게시글 목록 -->
<select id="list" resultType="com.board.domain.BoardVO">
SELECT bno, title, content, writer, regDate, viewCnt
FROM tbl_board
</select>
</mapper>
resultType을 BoardVO로 타입 지정을함
BoardVO로 결과를 받으면 됨 .
DAO를 생성할거임
DAO만 모아두도록 패키지 생성후
BoardDAO 인터페이스생성
package com.board.dao;
import java.util.List;
import com.board.domain.BoardVO;
public interface BoardDAO {
//에러 발생 시 호출한 곳에서 에러를 해결하기 위해 Exception
public List<BoardVO> list() throws Exception;
}
BoardDAO를 상속받는 BoardDAOImple생성
package com.board.dao;
import java.util.List;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.board.domain.BoardVO;
@Repository
public class BoardDAOImple implements BoardDAO{
@Autowired //Inject 사용해도됨
private SqlSessionTemplate sqlTemplate;
@Override
public List<BoardVO> list() throws Exception {
//tb1_board의 모든 게시글을 가져옴
return sqlTemplate.selectList("board.list"); //namespace + id
}
}
boardMapper.xml의
namespace = board
select id = list
즉, board.list
BoardService를 상속받는
BoardServiceImple 클래스 생성함
package com.board.service;
import java.util.List;
import javax.inject.Inject;
import org.springframework.beans.factory.annotation.Autowired;
import com.board.dao.BoardDAO;
import com.board.domain.BoardVO;
public class BoardServiceImple implements BoardService{
@Inject // Autowired 사용가능함
private BoardDAO boardDAO;
@Override
public List<BoardVO> list() throws Exception{
return boardDAO.list();
}
}
override해서 BoardService에 자동 추가
boardController
package com.board.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.board.domain.BoardVO;
import com.board.service.BoardService;
@Controller// 컨트롤러 선언
@RequestMapping("/board") // 요청 주소 /board 주소만 넣으면 해당 컨트롤러로 넘어옴
public class BoardController {
@Autowired
private BoardService boardService;
@GetMapping("/list")
public void getList(Model model) throws Exception {
//void리턴 시에 주소값과 같은 .jsp를 찾는다. 즉, board/list.jsp를 찾음
List<BoardVO> list = boardService.list();
model.addAttribute("list", list);
}
}
list.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>게시물 목록</title>
</head>
<body>
<table>
<thead>
<tr>
<th>번호</th>
<th>제목</th>
<th>작성일</th>
<th>작성자</th>
<th>조회수</th>
</tr>
</thead>
<tbody>
<c:forEach items="${list}" var="board">
<tr>
<td>${board.bno}</td>
<td><a href="">${board.title}</a></td>
<td>${board.regDate}</td>
<td>${board.writer}</td>
<td>${board.viewCnt}</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
실행하면 해당 오류가 뜸
어노테이션을 실제로 등록할려면 위와 같이 패키지 설정이 필요하다.
'BACKEND > Spring' 카테고리의 다른 글
게시판 만들기 - view.jsp(게시글 조회) 및 DAO, Service, Controller (1) | 2023.10.23 |
---|---|
게시판 만들기 - write.jsp(게시물 작성) , mapper (0) | 2023.10.23 |
게시판 만들기 - list.jsp 목록 페이지 및 BoardController (0) | 2023.10.23 |
게시판 만들기 - mapper 폴더 내에 sql문 작성할 파일 만들기 (0) | 2023.10.23 |
게시판 만들기 - BoardVO만들기 (0) | 2023.10.23 |