[Spring] MyBatis 란?

JOY·2023년 4월 28일
0

[Spring]

목록 보기
12/18
post-thumbnail

MyBatis

MyBatis란?

ORM 프레임워크
Java의 관계형 데이터베이스 프로그래밍을 쉽게 할 수 있도록 도와주는 개발 프레임워크

  • JDBC를 통해 DB에 엑세스 하는 고급 매핑 작업 지원
    MyBatis Framework = ORM Framework
    ORM : Object Relation Mapping

MyBatis 특징

  • 다이나믹한 쿼리 작성 가능
  • 프로그램 코드 와 SQL 쿼리를 분리하여 코드의 간결성 및 유지보수 향상
  • 빠른 개발이 가능하여 생산성 향상
  • 개발자가 직접 쿼리 결과 바인딩 X
  • join 결과에 대한 쉬운 객체 바인딩

view → controller → service → DAO(=Repository) ↔ Mybatis영역

MyBatis 영역

~.jar 필요
sqlMapConfig.xml -> MyBatis의 환경설정문서
1) DB 연결, 로드 설정
2) 부가적인 옵션 설정
3) Mapper 등록

MyBatis를 사용하는 액세스 계층

MyBatis 주요 Component

  • MyBatis 설정파일(SqlMapConfig.xml)
    : 데이터베이스 접속 주소 정보, Mapping 파일 경로 등의 고정된 환경정보 설정
    : VO 객체 정보 설정
  • SqlSessionFactoryBuilder
    : ~.xml 문서 기반으로 sqlSessionFactory 생성
    : SqlSessionFactory 인스턴스 빌드
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			<dataSource type="UNPOOLED"> <!-- type="POOLED | UNPOOLED -->
				<property name="driver" value="${driverName}" />
				<property name="url" value="${url}" />
				<property name="username" value="${db.userName}" />
				<property name="password" value="${db.userPass}" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="mapper/Mapper.xml" />
	</mappers>
</configuration>
  • SqlSessionFactory
    : 필요할 때 마다(CRUD 작업할 때 마다) sqlSession 계속 생성
  • SqlSession
    : JDBC의 connection과 동일
    : SQL 실행이나 트랜잭션 관리
    : 자동커밋이 아니기 때문에 DML 작업인 경우 반드시 commit or rollback을 해야한다
  • Mapping 파일(~.xml)
    : SQL문과 Mapping 설정

SqlSession메소드 추가 예정

profile
Just Do IT ------- 🏃‍♀️

0개의 댓글