#1 교육정리
1) Mybatis SQL Mapper Framework
#2 Mybatis SQL Mapper Framework
Mybatis 소개)
마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다. 마이바티스는 JDBC로 처리하는 상당부분의 코드와 파라미터 설정및 결과 매핑을 대신해준다. 마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO 를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있다.
해당 문서에 대해서는 아래 github에서 확인 할 수 있습니다.
https://github.com/mybatis/mybatis-3/tree/master/src/site
Mybatis 구조)
- mybatis-config 는 mybatis의 메인 환경설정 파일이다. 어떤 DBMS와 커넥션 맺을지, 어떤 맵퍼파일들이 있는지 등 알 수 있다.
- Mybatis는 맵퍼 파일에 있는 각 SQL 명령어들을 Map 에 담아서 저장하고 관리한다. 고유 아이디로 꺼내주는 듯
스프링의 FactoryBean 인터페이스를 구현
어플리케이션 시작 시점에 SqlSessionFactory를 빌드하고 sqlSessionFactory 라는 이름으로 저장하는 것입니다.
SqlSessionFactoryBean 자체를 생성하는 것이 아니라 팩토리에서 getObject() 메소드를 호출한 결과를 리턴합니다.
SqlSessionFactory가 datasource를 참조하여 mybatis와 db를 연동시킵니다.
개인 프로젝트에 적용해 그림으로 보기)
원래는 MySQLBoardDao에 자바코드와 SQl 코드가 섞여 있어서 관리하기가 어렵게 되어 있고, JDBC API 호출 코드가 반복되어 있었습니다. 그래서 아래 2번 해결과 같이 자바코드와 SQL코드를 분리하여 Mybatis에 JDBC API를 캡슐화해서 요청을 받고 로딩하여 JDBC Drivet에 요청합니다.
이렇게 함으로써 코드 관리가 쉽고, 자바 프로그래밍이 훨씬 간결해집니다.
Markup 과 XML)
BoardDao.xml 파일을 통해서 실행하였으며, xml의 경우 아래와 같이 문서 작성 규칙을 따릅니다.
wellformed-xml 과 valid-xml)
Mybatis Mapper XML 문서)
java에서 패키지라고 불리는 것은 xml 문서에서는 namespace 라고 불립니다.
Mybatis Mapper XML 문서 - insert/update/delete)
Mybatis Mapper XML 문서 - SQL 사용)
sqlSessionFactory 준비)
트랜잭션을 고려한 방식)
트랜잭션을 고려하지 않은 방식)
select 결과 받기)
select 결과 받기 : 컬럼의 이름이 맞지 않아 객체에 값을 제대로 저장 못 할 때)
자세한 코드 내용은 아래 github - app52를 참조해주세요!
https://github.com/wooki37/bitcamp-study/tree/main/myapp
'[Naver Cloud Camp 7] 교육 정리' 카테고리의 다른 글
네이버 클라우드 캠프 70일차 230802 (0) | 2023.08.02 |
---|---|
네이버 클라우드 캠프 69일차 230801 (0) | 2023.08.01 |
네이버 클라우드 캠프 65일차 230726 (0) | 2023.07.26 |
네이버 클라우드 캠프 64일차 230725 (0) | 2023.07.25 |
네이버 클라우드 캠프 63일차 230724 (0) | 2023.07.24 |