TimeMapper에 @Select도 활용하지 않은 메서드를 선언 하겠습니다.
getTime()메서드가 사용할 쿼리문을 저장할 XML파일을 생성합니다.
com.ict.time.mapper /우클릭 new / file / TimeMapper.xml생성
마이바티스에서 사용할 xml파일임을 명시
mapper태그의 namespace에 어떤 인터페이스와 연동할지 패키지부터 다 적음
/TimeMapperTest.java
testGEtTime2()를 만들어서 timeMapper의 getTime2를 호출해주세요.
실행해보면
시간이 나오는걸 확인할 수 있다.
= Xml파일에 쿼리문을 작성해 자바코드와 SQL쿼리문을 분리해 관리
마이바티스의 결과물은 실제 sql로그와는 형태가 약간 다릅니다.
sql창에서 나오는 로그와 유사한 구문을 콘솔에 찍기 위해
Mvnrepository에서 log4jdbc-log4j12-jdbc4 1.16버전을 복사해 Pom.xml에붙여줍니다.
로그 설정을 추가하기 위해 src/main/resource에 Log4jdbc.log4j2.properites 파일을 생성하고
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator 작성해줍니다.
root-context.xml의 hikariConfig를 설정하는 곳에서
DriverClassName과 jdbcUrl을 log4dbc에 맞게 수정
실행하면
sql창에서 나오는 로그와 유사한 구문처럼 나오는걸 확인할 수 있음
C : CREATE = INSTERT
R : READ = SELECT
U : UPDATE = UPDATE
D : DELETE = DELETE
한글인코딩을 처리하기 위해 Web.xml파일의 web-app> 태그 사이에 위와같이 적어넣습니다.
오라클 접속
초록색 십자가 버튼 클릭
Name : mytest connection
사용자 이름 : mytest
비밀번호 : mytest
서비스 이름 체크 하고 XEPDB1 작성하고 테스트를 누르고 왼쪽 하단에
상태 성공이라 뜨면 저장을 누릅니다.
오라클
게시판 글 구성을 해줍니다.
테이블명은 board_tbl
bno number(10,0)
title varchar2(200) not null,
content varchar2(2000) not null,
writer varchar2(50) not null,
regdate date default sysdate,
updatedate date default sysdate
bno는 alter를 이용해 primary key를 줌
Insert 구문으로 5개의 글을 집어 넣고 select구문을 이용해 제대로 자료가 들어갔는지 체크합니다.
Bno는 보시다시피 시퀀스 설정으로 만든 board_num.nextval 으로 입력하면
board_num이 0인 상태로 시작해 nextval을 받을때마다 1씩 가산되어 입력됩니다.
마이바티스는 자바 코드와 쿼리문을 분리하기 위해 위와 같이 인터페이스와 xml 파일 두개의 나눠진 파일을 하나처럼 사용합니다.
이를 위해 root-context.xml내부에 mybatis_spring에 마이바티스 관련 파일이 적재되는 패키지를 인식시킵니다.
Spring
com.ict.time.mapper패키지에
BoardMapper.java -인터페이스
BoardMapper.xml - file 을 만들어 줍니다.
그리고 root-context.xml에 mybatis 태그를 사용해줍니다.
BoardMapper.xml
com.ict.vo 패키지 만들고
BoardVO 생성
멤버 변수 선언
BoardMapper.java
BoardMapper.xml
인터페이스에서는 메서드의 이름과 용도에 따른 리턴자료형을 적어줄 수 있고
xml 파일에서는 쿼리문의 종류에 따라 태그를 사용하고 id 속성에 연결 메서드 이름을 resultType에는 리턴 자료형을 적도 리스트 자료형도 그냥 리스트 없이 자료만 적습니다.
com.ict.persistence 패키지에 BoardMapperTests 클라스생성
BoardMapperTests
실행하면