MyBatis - 실습

이지윤·2022년 5월 5일
0

예제 프로젝트 개요

mvc-mybatis 예제 프로젝트 작업 순서

데이터 엑세스 층 개발

MemberDAO.java

MemberDAOImpl.java


스프링 빈 등록 (MemberDAO.java)

MyBatis를 이용하여 SQL 사용하는 방식 3가지

  • XML 만을 이용 -> SQL문 설정 : DAO에서 XML을 찾아서 실행하는 코드 작성
    • 장점 : SQL문의 별도의 XML 파일로 관리하여 유지보수 적합
    • 단점 : 코드의 양이 많아짐
  • 애노테이션과 인터페이스만을 이용하여 SQL 문을 작성
    • 장점 : DAO 없이 개발 가능하여 생산성 증가
    • 단점 : 매번 수정시 컴파일 필요
  • 인터페이스와 XML로 작성된 SQL 문의 활용
    • 장점 : 간단한 SQL은 인터페이스, 복잡한 SQL은 XML로 처리 -> 유연성 확보
    • 단점 : 2가지 방식의 혼재로 유지보수 작업에 부적합

    실습은 SQL Mapper XML를 이용하는 방식으로 진행

매핑 파일(Mapper)작성 - studentMapper.xml

  • root-context.xml의 mapperLocations 속성에 파일 위치 설정
  • Mapper는 SQL 문을 저장하는 곳
  • Mapper를 통해서 SQL문과 객체를 연결
  • 파일 명은 Mapper 인터페이스 명으로 한다.

SQL 삽입 값의 연계 방법 : #{바인드 변수 명}을 이용한 바인드 변수 지정

1. 파라미터가 자바빈즈 객체일 경우 #{num}은 getNum() or setNum()을 의미

2. 파라미터가 하나이고, 기본 자료형이나 문자일 경우 값을 그대로 전달

3. 파라미터가 Map일 경우 #{num}은 Map객체의 키 값이 'num' 인 값을 찾음

SQL의 실행 결과와 반환 값이 되는 객체 간의 매핑은 마이바티스에 의해 자동적으로 이루어짐

studentMapper.xml

CRUD 조작

  • Mapper의 SQL 반환 값에 따라 DAO객체의 메서드 타입이 결정
  1. INSERT : 등록 건수(int/long) or 등록 여부(boolean), 필요 없음(void)
  2. UPDATE : 갱신 건수 1건 (boolean), 그 외 갱신 건수(int/long), 필요 없음(void)
  3. DELETE : tkrwp 건수 1건 (boolean), 그 외 갱신 건수(int/long), 필요 없음(void)
  4. READ : SQL 반환 값은 자동적으로 객체와 매핑

단위 테스트3 - MemberDAOTest.java

  • 회원 정보 관리 기능 정상 기능

비즈니스 로직 층 개발

MemberService.java

MemberServiceImpl.java

스프링 빈 등록 (MemberService.java)

MemberController.java 컨트롤러

(jsp 소스코드는 "스프링 MVC 프로젝트 - memberController" 블로그에 있습니다.)

  • 학생목록 조회, 학생정보 조회 기능
  • 학생정보 등록, 학생정보 수정 기능

컨트롤러 - 학생 목록 조회

컨트롤러 - 학생정보 조회

컨드롤러 - 학생정보 등록

컨트롤러 - 학생정보 수정

스프링 빈 등록 (MemberController.java)

profile
초보자

0개의 댓글