❓ MyBatis
객체지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있도록 도와주는 개발 프레임워크
마이바티스와 마이바티스-스프링
MyBatis는 XML 구문과 어노테이션을 사용한 SQL문이나 저장된 프로시저를 데이터베이스와 자바 등을 연결시켜주는 역할을 하는 영속성 프레임워크이다.
영속성 프레임워크란 정보에 대한 접근과 저장을 단순화하는 라이브러리를 말한다. JDBC 코드와 수동으로 설정하는 파라미터와 결과매핑을 없애주고, 데이터베이스에 원시타입(int, String, Data)과 맵 인터페이스, 자바 객체를 설정하고 매핑하기 위해 XML과 어노테이션을 사용할 수 있다.
스프링과 마이바티스-스프링을 연동한 데이터의 흐름
스프링과 마이바티스-스프링을 연동한 데이터의 흐름은 컨트롤러→서비스 로직→매퍼→매퍼 XML 순이다.
- 스프링 설정 파일에서 데이터베이스 서버에 관한 데이터소스(DataSource), 매퍼위치, 트랜잭션, SqlSession, 매퍼 주입에 관하여 설정한다.
- 컨트롤러는 스프링 구성요소로 서비스 로직으로부터 데이터를 전달받는다.
- 서비스 로직은 자바빈으로 구성하고, 데이터베이스를 검색하거나 관리한다.
- 매퍼는 인터페이스로 선언하고, 구현 클래스에서 SQL문을 실행한다.
- 매퍼 XML은 매퍼 XML 요소와 SQL문으로 작성되는 매퍼 XML 구문이다.
SQL Mapper XML 파일
SQL Mapper XML 파일은 MyBatis에서 가장 중요한 파일이다. 이 XML 파일에 DB 연동에 필요한 SQL 쿼리문들이 작성되기 때문인데, 데이터베이스를 다루는 SQL문은 마이바티스가 제공하는 기능의 XML이나 어노테이션을 통한 매퍼 기법으로 작성된다.
⇒ SQL문에서 SELECT문은 select 엘리먼트, INSERT문은 insert 엘리먼트, UPDATE 문은 update 엘리먼트, DELETE문은 delete엘리먼트로 매핑 XML 구문을 만든다.
select, insert, upda te, delete 요소에 사용할 수 있는 공통 속성
select
select 요소는 데이터를 검색하는 SELECT 구문을 작성할 때 사용한다. 테이블에서 전체 행을 검색하는 SELECT문의 매퍼 구문 형식은 다음과 같다.
<select id="구분자" resultType="반환타입">
select 컬럼명1, 컬럼명2 ... from 테이블명
</select>
select 요소에서만 resultType, resultMap, fetchSize를 사용할 수 있다.
insert, update, delete
INSERT문, UPDATE문, DELETE문은 insert, update, delete 매퍼 요소와 공통 속성과 속성을 사용하여 매퍼 구문을 작성한다.
insert 요소는 테이블에 행을 추가하는 insert문의 매퍼 구문을 작성한다.
update 요소는 테이블의 컬럼 값을 수정하는 update문의 매퍼 구문을 작성한다.
delete 요소는 테이블의 행을 삭제하는 delete의 매퍼 구문을 작성한다.
파라미터의 위치 지정자(?) 표기
파라미터는 마이바티스에서 매우 중요한 요소로, SQL문의 파라미터 값을 받기 위해 "#{}" 기호로 표기하며, {} 속에 "값"이나 자바빈의 "프로퍼티명"을 기술한다.
'MyBatis' 카테고리의 다른 글
CDATA Section (0) | 2023.10.07 |
---|---|
ResultMap (0) | 2023.10.07 |
바인딩변수를 이용한 SQL문 (0) | 2023.10.06 |
mybatis-config.xml 설정파일 (0) | 2023.08.07 |
SQLSession (1) | 2023.08.07 |