13.JDBC(검색메뉴)

sana·2022년 8월 2일

JDBC

목록 보기
13/14

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";초기값 변경


profile
공부한내용 정리하고있는 개린이입니다

0개의 댓글