spring MVC 패턴 : 코딩 순서
VO -> Mapper -> xxx.xml(sql) -> Service -> ServiceImpl -> Controller -> JSP
VO(Value Object) : 테이블과 닯은 자바 객체(컬럼 == 속성), DB정보를 저장하는 그릇역할
=> 속성필드, 생성자, Setter/Getter
Mapper(인터페이스) : DB 테이블의 CRUD 함수명을 정하는 파일
예) 1) 전체조회, 2) 추가, 3) 상세조회 4) 수정 5) 삭제
xxx.xml(sql 작성) : CRUD sql 문을 작성하는 파일(마이바티스 프레임워크)
Service(업무로직 작성) : CRUD + 업무로직도 만듬 등 , 인터페이스(함수명만 있음)
ServiceImpl(자식클래스) : Service 상속받아 함수 재정의함 , Mapper 객체의 함수 실행
Controller(서비스와 JSP(화면) 중간역할) : Service 객체의 함수 실행, 결과를 JSP 전송
함수의 URL 도 있음
1) 전체 조회 함수 : 검색어 추가 , 페이징 기능 추가
부서 게시판 만들기 참고 :
1-1) DeptVo : Criteria 객체 상속(페이징 객체)
1-2) DeptMapper : List<?> selectDeptList(Criteria searchVO);
int selectDeptListTotCnt(Criteria searchVO);
1-3) Dept.xml : selectDeptList 의 sql 문 작성(전체 조회)
selectDeptListTotCnt 의 sql 문 작성(페이징:전체개수)
1-4) DeptService : List<?> selectDeptList(Criteria searchVO) throws Exception
int selectDeptListTotCnt(Criteria searchVO)
1-5) DeptServiceImpl : 위의 함수 재정의 , DeptMapper 객체 함수 실행
1-6) DeptController : selectDeptList 함수 작성
매개변수 : searchVO, model
url : /dept
jsp : basic/dept/dept_all
페이징 객체 : PaginationInfo (현재페이지번호, 첫페이지번호 등 저장)
(나중에는 항상 그 코드를 붙여넣기 하면 페이징기능이 추가됨)
###2) 추가 페이지 열기 : createDeptView 코딩 -> jsp : add_dept 코딩
3) 저장 버튼 실행 :
3-1) DeptVO 생략 :
3-2) DeptMapper : 인터페이스 , insert 함수 작성
3-3) Dept.xml : insert 문 코딩(sql)
3-4) DeptService : insert 함수 작성
3-5) DeptServiceImpl : 함수 재정의 DeptMapper 객체의 insert 함수 실행
3-6) DeptController : DeptService 객체의 insert 함수 실행, jsp 코딩