[Spring MVC] 게시판 DAO, DAOImpl #6
Last Updated: 2025년 07월 18일
DAO는 Data Access Object (데이터 접근 객체)이며, mapper 에서 작성한 sql 의 결과값을 DAO 로 옮김.
출처: 내 컴퓨터
DAO 파일은 interface 파일, DAOImpl 파일은 class 파일이며, interface를 사용하는 이유는 기능별로 통일하고 싶은 것들을 정하는 것이다.
BoardDAO.java
package kr.co.narrator.board.dao;
import java.util.List;
import kr.co.narrator.board.common.SearchCriteria;
import kr.co.narrator.board.dto.BoardDTO;
/*
* DAO는 Data Access Object (데이터 접근 객체)
* mapper 에서 작성한 sql 의 결과값을 DAO 로 옮김.
* DAO 파일은 interface 파일이고, DAOImpl 파일은 class 파일이다.
* interface를 사용하는 이유는 기능별로 통일하고 싶은 것들을 정하는 것.
*/
public interface BoardDAO {
// 게시판 리스트 및 총 갯수
public List<BoardDTO> boardList(SearchCriteria cri) throws Exception;
public int boardListCnt(SearchCriteria cri) throws Exception;
// 게시판 조회 및 조회수 증가
public BoardDTO boardContent(int seq) throws Exception;
public int boardContentCount(int seq) throws Exception;
// 게시판 글쓰기
public void boardInsert(BoardDTO boardDTO) throws Exception;
}
BoardDAOImpl.java
package kr.co.narrator.board.dao;
import java.util.List;
import javax.inject.Inject;
import org.apache.ibatis.session.SqlSession;
import org.springframework.stereotype.Repository;
import kr.co.narrator.board.common.SearchCriteria;
import kr.co.narrator.board.dto.BoardDTO;
/*
* @Repository : 스프링 컨테이너가 component-scan에 의해 지정한 클래스를 DAO빈으로 자동 변환
* SqlSession에서 제공하는 메서드 : selectList, selectOne, selectMap, insert, update, delete
* SqlSession 은 dataSource-context.xml 에서 빈으로 등록함.
*/
@Repository
public class BoardDAOImpl implements BoardDAO {
private final String NS = "kr.co.narrator.board.boardMapper";
@Inject
private SqlSession sqlSession;
// 게시판 리스트 및 총갯수
@Override
public List<BoardDTO> boardList(SearchCriteria cri) throws Exception {
return sqlSession.selectList(NS + ".boardList", cri);
}
@Override
public int boardListCnt(SearchCriteria cri) throws Exception {
return sqlSession.selectOne(NS + ".boardListCnt", cri);
}
// 게시판 조회 및 조회수 증가
@Override
public BoardDTO boardContent(int seq) throws Exception {
return sqlSession.selectOne(NS + ".boardContent", seq);
}
@Override
public int boardContentCount(int seq) throws Exception {
return sqlSession.update(NS + ".boardContentCount", seq);
}
// 게시판 글쓰기
@Override
public void boardInsert(BoardDTO boardDTO) throws Exception {
sqlSession.insert(NS + ".boardInsert", boardDTO);
}
}