board패키지 안에 mapper패키지를 생성후 BoardMapper라는 인터페이스를 생성한다.
기존에 있던 IBoardDao에 있는 내용을 BoardMapper인터페이스에 그대로 붙여넣어준다.
// 게시판 건수 조회 (R:Read)
int getBoardCount(BoardSearchVO searchVO) throws SQLException;
// 게시판 목록조회(R:Read)
List<BoardVO> getBoardList(BoardSearchVO searchVO) throws SQLException;
// 게시판 글 상세조회(R:Read)
BoardVO getBoard(int bo_no) throws SQLException;
// PreparedStatement.executeUpdate() => n개가 update 됬는지, n개가 delete됬는지, n개가 insert 됬는지 리턴!
// 게시판 글 등록(C:Create)
int insertBoard(BoardVO board) throws SQLException;
// 게시판 글 수정(U:Update)
int updateBoard(BoardVO board) throws SQLException;
// 게시판 삭제 ( BO_DEL_YN = 'Y')
int deleteBoard(int bo_no) throws SQLException;
// 조회수 증가 ( bo_hit 1증가 )
int increaseBoardHit(int bo_no) throws SQLException;
이후 BoardServiceImpl에서 불러오는 Dao설정을 Mapper로 변경해준다.
기존 다오는
private BoardDao boardDao = BoardDao.getInstance();
이렇게 호출했지만 BoardMapper는
private BoardMapper boardMapper; 이렇게 선언을 해준다.
인터페이스라 인스턴스가 필요없음 선언만 해준다.
문자열로 호출하지않고 메소드 호출하듯 부르면 된다.(문자열로 호출시 오타찾기가 어렵기 때문이다.)
기존 내용은 아래와같다.
@Override
public List<BoardVO> getBoardList(BoardSearchVO searchVO) throws Exception {
SqlSession session = sqlSessionFactory.openSession();
int tot_cnt = boardDao.getBoardCount(session, searchVO);
searchVO.setting(tot_cnt);
List<BoardVO> list = boardDao.getBoardList(session, searchVO); // session추가.
session.close();
return list;
}
변경후의 내용은 아래처럼 변경해준다.
@Override public List<BoardVO> getBoardList(BoardSearchVO searchVO) throws Exception { SqlSession session = sqlSessionFactory.openSession(); boardMapper = session.getMapper(BoardMapper.class); int tot_cnt = boardMapper.getBoardCount(searchVO); searchVO.setting(tot_cnt); List<BoardVO> list = boardMapper.getBoardList(searchVO); session.close(); return list; }
그 외의 모든 메소드도 변경해주면 다오는 더이상 필요가 없어졌다.
'IT공부 > SPRING' 카테고리의 다른 글
DI AOP MVC (0) | 2019.08.09 |
---|---|
스프링 4회차. (0) | 2019.08.07 |
mybatis에서 로그를 보기위해 Log4j 설치하기. (0) | 2019.08.05 |
스프링 2회차. (0) | 2019.08.05 |
MyBatis이용한 기존 쿼리문 변경. (0) | 2019.08.02 |