ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JDBC 검색 메뉴 구현하기
    JDBC 2022. 2. 4. 23:56

    **유튜브 뉴렉쳐님의 강의를 들으면서 공부하고 정리한 내용입니다.

     

     

    검색기능을 추가하기 위해 코드를 조금 수정해주었다.

    검색어를 입력 받아서 거기에 맞는 조치를 취하기 위해 그 역할을 콘솔에게 맡기도록 하자

     

    그런 다음 마우스 클릭해서 메서드를 생성 해준다.

    검색을 하려면 입력을 받아야 하기 때문에 스캐너를 생성 해준다.

    근데 이 searchWord는 혼자 쓰는것이 아니라  목록을 조회 할 때 printnoticelist가 쓸 내용이다.

    그래서 리스트를 가져 올 때 printnoticelist에 다른 메서드와 공유해야하는 정보를 가지고 있어야 하기 때문에 멤버 변수로 생성 해줘야한다. 마우스를 클릭해서 멤버로 생성 해준다. 

    생성이 되면 기본값으로 null값이 생성이 되는데 우리는 기본값으로 null값이 아닌 빈 문자열을 주도록 한다. 

    우리가 입력을 받을 때에는 단순하게 프롬프트를 띄우는것보다는  검색하기 위한 키워드를 입력하라고 해주는게 바람직하다.

    입력할때에는 검색어와 검색하기 위한 필드(ex.작성자or내용 등..) 를 같이 만들어주는 것이 좋을 것이다. 

     

    변수를 생성해주고 나면 기본값으로 null값이 생성되는데 서치필드도 기본값으로 빈문자열을 주도록 하자.

     

    이제 실행해보면

    5번검색기능이 나타났다 5번을 입력하면 범주를 입력하라고 뜨고 저자1을 검색해보았다.

    근데 저자1 말고도 다른것들도 뜬다 이것은 우리가 아직 코드를 구현하지 않았기 때문이다.

     

    검색내용이 걸러질수 있도록 코드를 수정해보자 

     

    이 코드는 서비스 클래스에서 목록을 제공해주는 서비스 메서드이다.

    지금은 사용자로부터 웹페이지만 달라고 하는 페이지 정보만 제공하고 있었는데 수정이 필요하다.

    검색을 위해서는 사용자가 두가지 정보를 제공해야한다.

    1. String field = 검색을 위한 기분값. 제목으로 검색할것인지 작성자로 검색할것인지 등등.. 

    2. String query = 이것을 이 쿼리에 넘겨 받아야 한다.

     

    가장 기본적으로 where절에 포함하면 되겟다고 생각 할 수 있다. 

    SELECT * FROM NOTICE_VIEW WHERE TITLE LIKE %?% AND NUMM BETEEWN ? AND ? 

    의 형태가 되면 될 것 같다 

    값을 꽂아줘야하는데 값을 꽂아줄때에는 set으로 받으면 쿼리를 실행할때 문제가 발생하게 된다. 

     

    SELECT * FROM NOTICE_VIEW WHERE "+field+" LIKE ? AND NUMM BETEEWN ? AND ? 로 쿼리를 작성해주고

    st.setString(1, "%"+query+"%");

     

    밑에 두개의 set도 번호를 바꿔준다. 

     

    실행을 한번 해보자 

    'JDBC' 카테고리의 다른 글

    JDBC 마지막 페이지 구하기  (0) 2022.02.04
    JDBC 게시글 개수 구하기  (0) 2022.02.04
    JDBC로 이전/다음 페이지 구현  (0) 2022.02.04
    JDBC 목록 View 생성  (0) 2022.02.04
    JDBC 페이징 쿼리  (0) 2022.02.03
Designed by Tistory.