System.out.printf("1.상세조회/ 2.이전/ 3.다음/ 4.글쓰기/ 5.검색/ 6.종료 >");
case 5://검색
console.inputSearchWord();
break;
inputSearchWord() 구현해보자
public void inputSearchWord() {
Scanner scan = new Scanner(System.in);
searchWord = scan.nextLine();
}
searchWord는 다른데서도 쓰여야하니까 멤버변수로 만들자
public NoticeConsole() {
service = new NoticeService();
page = 1;
searchWord = "";
}
public void inputSearchWord() {
Scanner scan = new Scanner(System.in);
System.out.println("검색 범주(title/content/writerId)중에 하나를 입력하세요.");
System.out.print(" > ");
searchField = scan.nextLine();
System.out.print("검색어 >");
searchWord = scan.nextLine();
}
이렇게 만들거니까 searchField도 멤버변수로 만들고 초기값 빈 문자열로 똑같이 만들어주자
getList()는 서비스 클래스에서 목록을 제공해주는 메서드였다
이걸 수정해서 해보자
getList(int page,String field, String query) 변수추가
String sql = "SELECT * FROM NOTICE_VIEW WHERE ? LIKE '%A%'AND NUM BETWEEN ? AND ?"; 쿼리문 수정 field값을 ?에, query값을 A에 넣어보자
st.setInt(1, field);
로 바꾸면 될까?
안됨 왜냐면 값으로 인식해서
"SELECT * FROM NOTICE_VIEW WHERE 'TITLE' LIKE '%A%'AND NUM BETWEEN ? AND ?";
양옆에 따옴표가 들어가버림

로 변경
List<Notice> list = service.getList(page,searchField,searchWord);
이것도 변경
searchField = "TITLE";초기값 변경

끝