[Spring+JSP]CRUD 게시판 만들기

[스프링]MVC2방식 CRUD 게시판 만들기 6.DAO 작성

나스닥 엔지니어 2018. 7. 10. 12:07

* DAO (Data Access Object) : 데이터 접근 객체 

 - 서비스 <-> DAO <-> Mapper


* Service : 컨트롤러(서블릿)의 요청사항을 DAO에 전달




1. BoardDAO 작성하기.


1-1. com.myp.persistence 패키지 생성 



(main/java 디렉토리에 새로운 패키지 생성)



(패키지 네임은 persistence)



(persistence 폴더에 Interface 생성)



(인터페이스 네임은 BoardDAO)





1-2. DAO Interface 작성




(CRUD와 전체목록 구성을 위한 메소드 작성)



package com.myp.persistence;


import java.util.List;


import com.myp.domain.BoardVO;



public interface BoardDAO {


public void create(BoardVO vo) throws Exception;

public BoardVO read(Integer bno) throws Exception;

public void update(BoardVO vo) throws Exception;

public void delete(Integer bno) throws Exception;

public List<BoardVO> listAll() throws Exception;


}


1-3. DAO 인퍼페이스를 구현한 BoardDAOImpl 클래스 작성



(persistence 패키지에 New -> Class)



(Interfaces -> Add..)



(BoardDAO 검색 후 등록)



(클래스 네임은 BoardDAOImpl로 생성)



1-4. BoardDAOImpl 클래스 작성



(Sqlsession의 메소드를 이용한 간단한 DAO 구성)


- 전체코드


package com.myp.persistence;


import java.util.List;


import javax.inject.Inject;


import org.apache.ibatis.session.SqlSession;

import org.springframework.stereotype.Repository;


import com.myp.domain.BoardVO;



@Repository

public class BoardDAOImpl  implements BoardDAO {


@Inject

private SqlSession session;

private static String namespace = "com.myp.mapper.BoardMapper";

@Override

public void create(BoardVO vo) throws Exception {

session.insert(namespace+".create", vo);

}


@Override

public BoardVO read(Integer bno) throws Exception {

return session.selectOne(namespace + ".read", bno);

}


@Override

public void update(BoardVO vo) throws Exception {

session.update(namespace+".update", vo);

}


@Override

public void delete(Integer bno) throws Exception {

session.delete(namespace+".delete", bno);

}


@Override

public List<BoardVO> listAll() throws Exception {

return session.selectList(namespace + ".listAll");

}


}


1-5. root-context.xml 베이스 패키지 수정




(주소값을 "com.myp"로 변경)