목표: 목록페이지에서 검색 추가 - 옵션: 제목, 작성자 - 검색어 - 옵션상태, 검색어 상태유지 코드: NoticeListController.java 전체 코드 package com.newlecture.web.controller; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.servlet.Se..
목표: NoticeService클래스를 완성한다. 기존의 목록 리스트를 만들었던 코드를 활용한다. 크게 다르지 않다. 코드: - NoticeService.java 전체 코드 package com.newlecture.web.service; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.ne..
목표: getNoticeList의 JDBC 코드를 구현한다. 기존의 NoticeListController.java에서 사용하던 쿼리문을 모두 NoticeService.java로 옮겨서 구현한다. - NoticeListController.java : 사용자와의 입력과 출력(사용자와 상호작용) - NoticeService.java :서비스 모듈을 따로 서비스만 전문으로 기능 코드: - NoticeListController.java package com.newlecture.web.controller; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; impo..
목표: getPrevNotice 메서드의 SQL 쿼리를 작성한다. ID가 5인 NOTICE의 REGDATE가 NOTICE의 REGDATE보다 작은 ID를 출력 -> 2, 3, 4로 출력되어있다. 4가 출력해야 하는데 순서가 반대로 되어있다. NOTICE를 REGDATE로 역 정렬한 후의 NOTICE내의 REGDATE와 ID가 5인 REGDATE보다 작은 경우의 아이디를 출력 -> 4, 3, 2 순으로 잘 정렬되어있다. SQL 코드: getPrevNotice함수 구현 SELECT ID FROM (SELECT * FROM NOTICE ORDER BY REGDATE DESC) WHERE REGDATE < (SELECT REGDATE FROM NOTICE WHERE ID=5) AND ROWNUM = 1 SELE..
목표: getNextNotice 메서드의 SQL 쿼리를 작성한다. SQL 코드: getNextNotice함수 구현 SELECT * FROM NOTICE WHERE ID = ( SELECT ID FROM NOTICE WHERE REGDATE > (SELECT REGDATE FROM NOTICE WHERE ID=3) AND ROWNUM = 1); SELECT * FROM NOTICE ☞ NOTICE의 모든 데이터를 가져온다. WHERE ID = ( ☞ ID 값이 서브쿼리 인 경우를 선택한 후 SELECT ID FROM NOTICE ☞ NOTICE의 ID를 선택하는 서브 쿼리 WHERE REGDATE > (SELECT REGDATE FROM NOTICE WHERE ID=3) ☞ ID가 3인 NOTICE로부터 ..
목표: getNoticeList메서드 SQL 쿼리를 작성한다. SQL 코드: SELECT * FROM( SELECT ROWNUM NUM, N.* FROM (SELECT * FROM NOTICE ORDER BY REGDATE DESC) N ) WHERE NUM BETWEEN 6 AND 10; SELECT * FROM( ☞ 전체 데이터를 가져온다 SELECT ROWNUM NUM, N.* ☞ ROWNUM의 별칭 NUM과 아래의 서브 쿼리 전체 별칭 N의 데이터를 가져오는 서브 쿼리 FROM (SELECT * FROM NOTICE ORDER BY REGDATE DESC) N ) ☞ NOTICE내의 데이터를 REGDATE의 역순으로 정렬한 모든 데이터를 가져오는 별칭 N인 서브 쿼리내의 서브쿼리 WHERE NUM..
목표: 서비스 클래스의 큰 틀을 구현한다. 클래스 생성 클래스를 생성하면서 package를 추가한다. 코드: - NoticeService.java package com.newlecture.web.service; import java.util.List; import com.newlecture.web.entity.Notice; public class NoticeService { public List getNoticeList(){ return getNoticeList("title", "", 1); } public List getNoticeList(int page){ return getNoticeList("title", "", page); } public List getNoticeList(String field..
목표: 업무 서비스에서 필요한 서비스 함수를 어떻게 찾는지 알아본다. - 업무 서비스에서 구현해야 할 클래스 Servlet에서 업무 서비스를 분리해서 별도의 클래스를 만들고, 데이터베이스를 사용하는 코드들을 옮긴다. Servlet에서는 데이터 서비스를 받으면 된다. 관리자(회원의 기능은 모두 물려받는다): - 공지등록 - 공지 일광 공개 - 공지 수정 - 공지 삭제 - 공지 일괄 삭제 회원 - 공지 목록 조회 - 공지 상세조회 클래스 찾을 부분? NOTICE 공지 목록 조회 - 사용자 페이지 요청 getNoticeList() - 사용자 페이지 요청(번호) getNoticeList(int page) - 사용자 검색 요청 getNoticeList(String field, String query, int pa..