쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 https://github.com/2jaehoon/mybatisTest에 올려두었습니다.
MyBatis
- DataMapper Framework (Persistence Framework - 영속성 프레임워크)
- Apache Software Foundation 에서 iBATIS라는 이름으로 시작한 프로젝트
(apache -> google -> github)
- 다양한 언어를 지원( java, .net, Ruby )
- 유연성이 높다.(쿼리문을 XML로 분리하여 작성)
- 코드가 간결해진다.
- Spring연동
- Dynamic SQL작성
- mybatis.org에서 관련 파일을 다운 받는다.
- java언어로 개발된 open source framework
* MyBatis 사용법
0.배포된 jar를 build path로 설정하거나 WEB-INF/lib 폴더에 배포한다.
1.환경설정용 XML를 작성
2. Mapper 작성
- 쿼리문을 정의한 XML 작성
3. MyBatis Framework 생성
- SqlSessionFactoryBuilder : 설정 파일을 가진 스트림을 받아, DB 연결 관리,
XML에서 쿼리문을 파싱, 파싱된 쿼리문을 실행
- SqlSessionFactory : 쿼리문을 실행 하기 위해 세션을 여는 일
- SqlSession : ( MyBatis Handler )MyBatis Framework 사용하여 DB 작업 수행
3-1. 설정용 XML 읽기
Reader reader=Resources.getResourceAsReader("XML경로");
3-2. MyBatis Framework을 생성하고 쿼리를 실행하기 위해 연결을 얻는다.
SqlSessionFactory ssf=new SqlSessionFactoryBuilder().build( reader );
3-3. 쿼리문을 실행하기 위한 MyBatis Handler를 얻는다.
SqlSession ss=ssf.openSession();
ssf.openSession( true | false );// autocommit 여부 설정
3-4. mapper의 id를 찾아서 쿼리문을 실행
ss.insert("mapper의 namespace와 mapper 안의 id", insert할 값);// 값o insert
ss.insert("mapper의 namespace와 mapper 안의 id");// 값x insert
3-5. transaction 완료
// 커밋할 때
ss.commit();
// 롤백할 때
ss.rollback();
3-6. 연결 종료
ss.close();
properties
- 프로그램에서 사용하는 설정 값, 국제화(여러 나라 언어로 서비스하는 것)할 때 사용
- 저장되는 값 "이름=값" 형식만 설정하는 설정 파일
- 설정 파일에서 설정 값을 분리하여 사용하는 파일
- 값에 공백이 들어가면 공백까지 값으로 인식(띄어쓰기 하지 말 것 - 출력 메시지인 경우 가능)
- properties 파일의 주석은 #으로 시작한다.
* Mybatis에서 DB설정파일(mybatis-config.xml)에 설정 값을 properties로 분리.
1. property 파일 작성
- 아래의 값을 가진 database.properties 파일을
개발 최상위 경로에 properties 폴더를 만들고 넣는다.
log
- 프로그램의 실행 정보를 파일로 저장하거나 출력할 목적으로 사용하는 프로그램
- SLF4J, Apache Commons Logging, Log4j 2, Log4j, JDK logging 등 많은 로그 라이브러리 존재
- log가 동작하는 로그 레벨이 존재
( System.out.println보다 출력 상황에 대한 제어를 손쉽게 할 수 있다. )
설정된 log level에서 따라 로그를 출력해준다.
trace < debug < info < warn < error < fatal <= log4j 사용 level
* MyBatis에서 로그 설정
1. 사용할 로그 library를 설치한다.
2. 로그를 출력할 DAO나 MyBatis Framework과 관계있는 class에서
"org.apache.ibatis.logging.LogFactory.useLog4JLogging();" 를 설정한다.
* MyBatis에서 쿼리문을 parsing
1. 설정 파일에( mybatis-config.xml ) mapper 연결
2. mapper.xml에 쿼리문을 만든다.
3. MyBatis Handler를 얻기
SqlSession ss=SqlSessionFactory.openSession();
4. Handler를 사용하여 쿼리문을 실행하고 결과를 얻는다.
int cnt=ss.insert("찾을 아이디", 값 );
5. Transaction을 완료
ss.commit();
6. MyBatis Handler를 닫기
ss.close();
'성장 일기 > 쌍용교육센터' 카테고리의 다른 글
0518/ <typeAlias>, 쿼리문 태그(<, >) 처리 (0) | 2023.05.25 |
---|---|
0517/MyBatis에서 CRUD 사용 (0) | 2023.05.25 |
0515/DI, 의존성 주입 종류 (0) | 2023.05.15 |
0512/Spring, 강결합, 약결합 (1) | 2023.05.15 |
0511/AJAX (0) | 2023.05.15 |