Spring - 마이바티스 연결, CRUD 테스트 1

Hwawon_2·2022년 4월 5일
0

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창에서 나오는 로그와 유사한 구문처럼 나오는걸 확인할 수 있음

스프링 CRUD와 테스트

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

실행하면

profile
코딩 일기장

0개의 댓글