MyBatis-SqlSession

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

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개의 댓글