-
07 게시판 검색 기능 추가하기(1)Spring/03 MyBatis로 게시판 만들기 2023. 7. 21. 19:53반응형
게시판 검색 기능 추가하기(1)
1) 게시판 검색
>> 검색을 누르면 option과 keyword가 컨트롤러에 전송 된다
이제까지는 page와 pageSize만 전송했지만 option과 keyword도 추가될 것이다
2) MyBatis의 동적 쿼리(1) - <sql>과<include>
- 공통 부분을 <sql>로 정의하고 <include>로 포함시켜 재사용
2) MyBatis의 동적쿼리(2) - <if>
>> if else로 사용할 수 없고, if만 사용가능
>> A : 내용+제목, T : 제목, W : 작성자
>> WHERE true이가 들어간 이유
true가 없다면? WHERE AND가 SQL 문법 에러가 발생한다
그럼 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.java는 boardDaoImpl.java의 인터페이스
BoardDaoImplTest.java
>> 둘다 테스트를 통과하였다
※bgee 사용법
>> pom.xml에 1,16버전을 설치해주었다
>> 생성해준다
logback.xml
log4jdbc,log4j2,properties
rootcontext.xml
결과 확인
BoardDaoImplTest.java
>> 테스트 실행하게되면
>> 콘솔창에 MySQL데이터를 시각적으로 확인할 수 있다
>> 에러나 다른 MySQL의 에러를 좀 더 쉽게 찾아 낼 수 있다
반응형'Spring > 03 MyBatis로 게시판 만들기' 카테고리의 다른 글
09 REST_API와 Ajax (0) 2023.07.25 08 게시판 검색 기능 추가하기(2) (0) 2023.07.23 06 게시판 읽기, 쓰기, 삭제, 수정 기능 구현(2) (0) 2023.07.18 05 게시판 읽기, 쓰기, 삭제, 수정 기능 구현(1) (0) 2023.07.16 04 게시판 목록 만들기와 페이징-TDD(2) (0) 2023.07.14