성장 일기/쌍용교육센터 / / 2023. 5. 17. 09:12

0516/MyBatis 설정, properties

쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 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
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유