반응형

# MVC05_05 마무리

## JDBC를 MyBatis로 변경

1. JDBC의 문제점

  • 중요한 정보가 소스코드에 노출
  • 자바 소스코드와 SQL 문장이 혼합된 형태, 이로인해 유지보수에 문제점 발생 가능성
  • 개발속도가 느림(개발자가 모든 코드를 직접 만들어야 한다.)

2. SQL Mapping Framework의 이해

  • MyBatis는 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 조금 더 쉽게 할 수 있도록 도와주는 개발 프레임워크.
  • MyBatis는 JDBC를 통해서 데이터베이스에 액세스하는 작업을 캡슐화, 일반 SQL 쿼리, 저장 프로시저, 고급 매핑을 지원하고 모든 JDBC 코드 및 매개 변수의 중복 작업을 제거한다.
  • SQL쿼리들을 한 구성파일에 구성하여 SQL 쿼리와 프로그램 코드를 분리할 수 있는 장점이 존재.

3. MyBatis 환경설정 파일(3개)

  • MyBatis configuration File (XML - config.xml) :MyBatis3의 작업 설정을 설명하는 XML 파일
  • Mapper File (XML - mapper.xml) : SQL 쿼리를 작성하는 파일
  • Properties File (db.properties) :데이터베이스 연결정보를 기술하는 파일 (url, user, password)

4. SqlSessionFactory, SqlSession 이해

  • SqlSessionFactoryBuilder : MyBatis 환경설정 파일을 읽어서 SqlSessionFactory를 구성하는 요소로 Connection Pool을 만든다.
  • SqlSessionFactory : SqlSessionFactoryBuilder에 의해 만들어지는 객체로, SqlSession을 구성하는 요소(Connection Pool) 이다.
  • SqlSession : 데이터베이스에 액세스할 때 가장 중요한 역할을 한다. JDBC의 Connection + Statement 역할을 복합적으로 지닌 존재.

5. Connection Pool 개념 이해

SqlSessionFactoryBuilderSqlSessionFactory XML을 읽어들여서 최종적으로 메모리에 SqlSessionFactory를 생성, 해당 SqlSessionFactory 안에는 Connection Pool이 구성되어있다.

미리 데이터베이스에 접속할 수 있는 연결 객체를 여러개 만들어 두고 데이터베이스의 성능을 개선하기 위해 Connection Pool  구성해서 사용한다.

반응형

+ Recent posts