MyBatis-SqlSession

이정규 (가지마)·2023년 3월 15일

MyBatis란?
객체와 관계형데이터베이스를 매핑하는퍼시스턴스 프레임워크(ORM,Object Relationship Mappin)이다.

퍼시스턴스란(Persistence, 영속성)?
프로그램이 종료되더라도 사라지지 않는 데이터의 특성. 데이터가 영속성을 가지는것.

ORM(Object Relationship Mapping)이란?
객체와 RDBMS를 자동으로 매핑해주는것을 말한다.
객체<>관계형데이터베이스

MyBatis의특징
1.SQL문과 코드를 분리
:SQL문을 XML파일에 별도로 분리하여 코드의 간결함과 편리함을 향상시킴.
2.JDBC 기능 제공

3.다양한 언어를 지원

MyBatis 주요 컴포넌트
1)SqlSessionFactoryBuilder
:SqlSessionFactory를 생성하는 클래스이다.

2)SqlSessionFactory(interface)
:sqlSession객체를 실행하는 팩토리 클래스(인터페이스)이다.

3)SqlSessionFactoryBean
:config파일을 바탕으로 SqlSessionFactory를 생성하는 클래스이다.

4)SqlSession
:mapper.xml에 등록된 SQL문을 실행하고 트랜잭션을 관리하는 클래스(인터페이스)이다.
:Spring 프로젝트의 DAO에 직접접근하여 쿼리를 수행한다.

SqlSession메소드

1)selectOne
원형 : T selectOne(String statement, Object parameter);
:select문이 실행된 하나의 객체를 리턴한다. Null또는 한개 이상을 리턴할 경우 에러가 발생한다.

2)selectList
:select문이 실행되어 여러개의 객체가 담긴 리스트를 리턴한다.

3)selectMap
:결과 목록이 Map으로 변환되어 리턴된다.

4)insert
원형:int insert(String statement,Object parameter);
:insert문이 실행되어 결과 레코드가 반환된다.

5)update

원형: int update(String statement,Object parameter);
:update문이 실행되서 결과 레코드가 반환된다.

6)delete
원형 : int delete(String statement,Object parameter);
:delete문이 실행되서 결과 레코드가 반환된다.

7) SqlSessionTemplate
: SqlSession 인터페이스를 상속받아 구현된 클래스이며, 실제 SQL 및 트랜잭션을 실행한다.
: Thead-safe하여 멀티쓰레드환경에도 안전하다.

8) Spring bean XML
: 자바오브젝트와 SQL문을 매핑하기 위해 필요한 여러 파일의 정보를 설정한다.
*JDBC DataSource : Connection을 생성하주는 팩토리 클래스이다.
자바 코드 내 Connection con = dataSouce.getConnection() 으로 Connection을 생성한다.

profile
"꾸준함이 답이다."

0개의 댓글