우주코딩
Mybatis persistence Framework, Data Persistence Framework 본문
Mybatis persistence Framework
persistence - 지속성
framework - 기능 수행에 필요한 실행흐름을 미리 정의한 것 = 라이브러리 + 역할 수행을 위한 실행흐름
기존방식 : 자바코드 + jdbc프로그래밍 + sql
*.java 파일 중 sql을 분리하여 별도 파일로 둔다. *.xml
jdbc 프로그래밍을 캡슐화하여 분리한다 jdbc프로그래밍 라이브러리
자바 코드 -> jdbc프로그래밍 라이브러리 사용 -> xml파일의 sql 사용
실무 : 유지보수에 좋은 방향으로
Mybatis
자바코드 + jdbc코드 + sql
자바코드 , Mybatis, sql
Mybatis, sql = JDBC 코드를 캡슐화 -> 자바 코드에서 sql을 분리하여 sql 코드를 다루기 쉽고 DB처리를 간결하게
Mybatis 프레임워크의 핵심 클래스
Builder 패턴 : 여러 객체로 구성된 복잡한 구조의 객체를 생성할 때 사용하는 설계 기법
Factory Method 패턴 : 객체 생성 후 초기화시키는 과정이 복잡한 경우 사용하는 설계 기법
SqlSessionFactoryBuilder 생성
Mybatis 설정 정보에 따라 동작할 sqlsessionfactory 준비 ->
SqlSessionFactory (SQL코드가 들어있는 파일을 알고 있음) 생성
SQL을 찾아 실행할 sqlsession 객체를 생성 ->
SqlSession
JDBC 드라이버를 사용하여 SQL을 실행
파일에서 SQL을 추출하여 사용하기 쉽도록 메모리에 SQL을 로딩한다.
Data Persistence Framework
- SQL Mapper - SI에서 주로 사용
자바코드(개발자가 작성) -> Mybatis -> SQL (특정 DBMS에 종속 / 개발자가 작성)
- O-R(Object-Relation) Mapper - 자체 개발팀을 상시 운영하는 서비스업체에서 주로 사용
자바코드 (개발자가 작성) -> Hibernate -> OR매퍼 전용 문법 (DBMS에 종속되지 않는다 / 개발자가 작성) -> SQL (DBMS에 맞는 SQL로 자동 변환) -> Hibernate가 해당 Sql 사용
변환된 SQL은 개발자가 직접 작성하는 것 보다 정교함이 떨어질 수 있다.
즉, 실행 효율이 떨어진다. 대신 DBMS마다 SQL을 따로 작성할 필요가 없다.
'Project' 카테고리의 다른 글
Application Architecture, Application Server, web Application Server (0) | 2021.11.04 |
---|---|
xml 파일 읽기, sqlSession, in-parameter, xml entity (0) | 2021.10.20 |
DB 모델링, DB 모델링 절차 (0) | 2021.10.20 |
sql , sql 삽입공격, 값이 놓일 자리 ? (0) | 2021.10.20 |
DBMS 개요, JDBC API 규격, JDBC 프로그래밍 기본 골격 (0) | 2021.10.20 |