MyBatis (iBatis)

띠로리·2024년 5월 21일

[스프링]

목록 보기
9/11

DAO -> Spring-mybatis -> MyBatis -> DataSource(DBCP) -(Connection)> DB

DAO : 구현
Spring-mybatis : Bean, Library 등록 필요
MyBatis : Bean, Library 등록 필요
DataSource : Bean, Library 등록 필요

Spring-MyBatis와 MyBatis

DataSource, DBCP

HikariCP

pom.xml에 Dependency 추가 ✅


마이바티스란?

  • 데이터베이스 연동 관련 프레임워크
  • 원래 iBatis라고 불렸다
  • SQL Mapper
  • Java와 SQL(XML) 분리
  • 자동으로 파라미터 값 매핑 (SQL에)
  • 자동으로 결과값도 객체로 매핑
    ▶ select * from student -> StudetnVO로 매핑해서 리턴해준다
  • 동적 (dynamic) SQL 구현 가능

구조

  • 바깥에 mapper 태그
  • mapper 안에 <select>, <delete>, <update>, <insert>
  • DAO SQL 실행할 때 (지정 방법)
    • mapper 태그의 namespace, 태그의 id => namespace.id
    • namespace -> 중복 불가 !!! 에러남
    • 같은 namespace 내 id 역시 중복 불가!

메서드

  • selectList() : 여러 개 선택
  • seletOne() : 한 개 선택
  • insert(), update(), delete()

실행 시 : .메서드명("namespace.id"[, 파라미터(객체)])

  • int 형을 파라미터로 넣고 싶다? -> 객체가 들어가야 하기 때문에 INTEGER로 써야함

#{변수명} : preparedstatement -> ? 처리
${변수명} : statement -> 그대로 처리

iBatis는

  • #{변수명} => #변수명#
  • ${변수명} => $변수명$ 으로 사용한다.

동적 SQL

<where> : where 명령어를 추가하기도 하고, 제외하기도 한다.
<if test="조건">SQL</if> : 조건식이 참이면 포함되는 SQL
<sql> : 독립적으로 저장
<include> : 포함
<resultMap> : 결과 매핑
<parameterMap> : 파라미터 매핑

profile
차곡 차곡 기록 쌓기

0개의 댓글