Last Updated: 2022년 12월 14일
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); } }