Spring/03 MyBatis로 게시판 만들기

07 게시판 검색 기능 추가하기(1)

라타노 2023. 7. 21. 19:53
반응형

게시판 검색 기능 추가하기(1)

1) 게시판 검색

>> 검색을 누르면 optionkeyword가 컨트롤러에 전송 된다

이제까지는 pagepageSize만 전송했지만 optionkeyword도 추가될 것이다

 

 

 

2) MyBatis의 동적 쿼리(1) - <sql><include>

- 공통 부분을 <sql>로 정의하고 <include>로 포함시켜 재사용

 

 

2) MyBatis의 동적쿼리(2) - <if>

>> if else로 사용할 수 없고, if만 사용가능

>> A : 내용+제목, T : 제목, W : 작성자

>> WHERE true이가 들어간 이유

      true가 없다면? WHERE ANDSQL 문법 에러가 발생한다

      그럼 AND가 없다면? 조건에 맞는게 여러개 일 수 있기 때문에 AND를 넣어줘야 한다

      조건이 연결되려면 AND, OR가 연결되어야한다

 

if문은 위 A T W 조건중에 여러개가 맞을 수있다

- 검색기능에서는 하나의 조건만 필요하므로 적합하지 않다

 

 

2) MyBatis의 동적 쿼리(3) - <choose> <when>

>> if-else와 비슷하다

>> 번의 조건이 true라면 나머지 ,번은 실행되지 않는다

 

LIKE() 함수

LIKE 함수는 문자열 내에서 내가 원하는 문자열을 찾는 함수입니다

LIKE함수는 WILDCARDS 문자들과 함께 쓰입니다

 

와일드 카드

>> - 언더스코어라고 부른다

 

ex)

 

 

2) MyBatis의 동적쿼리(4) - <foreach>

in

wherer bno=1, where bno=2, where bno=3 여러개 일 때는

where bno in (1,2,3)을 사용

 

>> collection="array"의 값을 item=“bno"에 하나씩 담고

item="bno"의 값을 #{bno}에 전달한다

 

 

MySQL

>> MySQL에서는 concat을 넣어줘야한다 오라클은 X

 

>> NOT !=의미와 같다

 

 

 

2-1) 실습

SearchCondition.java(작성)

page=1, pageSize=10, offset=0;, keyword=" ";, option=" ";

    각각 기본값을 넣어주었다. 컨트롤에서 값이 안들어오면 사용하게 된다

Getter and Setter 생성, toString 생성

기본생성자 생성

offset을 제외한 생성자 생성

 

 

mybatis-config.xml

 

boardMapper.xml

>> 각각 생성

 

 

boardDaoImpl.java

>> boardMapper.xml 에 대한 메서드 생성

 

 

boardDao.java

>> boardDaoImpl.java 에 대한 메서드 생성

>> boardDao.javaboardDaoImpl.java의 인터페이스

 

 

BoardDaoImplTest.java

>> 둘다 테스트를 통과하였다

 

 

bgee 사용법

>> pom.xml1,16버전을 설치해주었다

 

>> 생성해준다

 

logback.xml

 

log4jdbc,log4j2,properties

 

rootcontext.xml

 

결과 확인

BoardDaoImplTest.java

>> 테스트 실행하게되면

 

>> 콘솔창에 MySQL데이터를 시각적으로 확인할 수 있다

>> 에러나 다른 MySQL의 에러를 좀 더 쉽게 찾아 낼 수 있다

 

 

 

 

반응형