Framework

자주 사용될 기능들을 미리 구현해 놓은 것.(생산성 향상)
배포는 .jar수행
* 제공되는 기능을 개발자가 상황에 맞게 수정하여 사용한다.
* 생명주기를 개발자가 관리하지 않는다.(new가 최소화된다.)
반조립의 형태.
최소한의 품질보장을 받기 위해서 프레임워크를 도입한다.
Spring, MyBatis, Struts, any framework, lafj, DF framework

Library

자주 사용될 기능들을 미리 구현해 놓은 것.(생산성 향상)
배포는 .jar수행
* 제공되는 기능을 그대로 사용한다.
* 생명주기를 개발자가 관리한다.(new를 개발자가 한다.)

MyBatis

DBMapper Framework(Persistence Framework - 영속성 프레임워크)
Apache Software Foundation에서 iBATIS라는 이름으로 시작한 프레임워크.
다양한 언어를 지원(java, .net)
언어에서 사용하는 데이터 형을 그대로 사용할 수 있다.
유연성이 높다.(쿼리문을 XML로 분리하여 작성하고 사용)
언어의 코드가 간결해진다.
mybatis.org에서 관련 파일을 다운로도 받을 수 있다.

설정

  1. WEB-INF/lib폴더에 mybatis-x.x.x.jar를 배포
  2. 환경설정용 XML작성(mybatis-config.xml) => 드라이브, URL, 아이디, 비번,,,Mapper연결설정
  • DBMS의 환경설정
  • 쿼리문을 저장한 파일의 연결 설정
  1. MapperXML작성(xxxMapper.xml) => 쿼리문 작성
  • namespace속성은 패캐지와 같은 것.
  • mapper가 달라졌을 때 같은 이름의 아이디를 여러개 사용 가능.
    MyBatis Handler에서 ID를 사용( ss.select("아이디명"); / ss.select("namespace명.아이디명"); )

사용

  1. MyBatis Framework 생성
    SqlSessionFactoryBuilder : 설정파일과 연결한 stream을 입력받아, DB연결관리, XML 쿼리문 파싱, 파싱된 쿼리문을 실행, 쿼리문을 실행하기 위한 세션을 확립하는 일.
    SqlSessionFactory : SqlSessionFactoryBuilder의 부모
    SqlSession : MyBatis Handler(MyBatis Framework을 사용하여 DB작업 수행)

  2. 설정용 XML과 연결
    Reader reader = Resources.getResourceAsReader("설정용.xml");

  3. MyBatis Framework을 생성
    SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);

  4. MyBatis를 조작하기 위해 MyBatis Handler얻기(autocommit을 설정으로 수행)
    SqlSession ss = ssf.openSession();//autocommit이 해제된 상태로 handler를 얻을 때
    SqlSession ss = ssf.openSession(true | false);//true - autocommit이 설정된 상태로 handler를 얻을 때

  5. Handler 사용
    ss.insert("mapper.xml의 id");//값 없이 insert할 때
    ss.insert("mapper.xml의 id", 값);//값을 사용하여 insert할 때

  6. Transaction 처리
    ss.commit(); ss.rollback();

  7. 연결끊기
    ss.close();

Properties

프로그램에서 사용하는 설정 값을 저장하거나, 국제화(여러나라 언어로 서비스)할 때 주로 사용
저장되는 값과 이름을 분리하여 작성. "이름=값"(사용자에러를 감소시킬 수 있다.)
값에 공백이 들어가면 공백까지 값으로 인식.(띄어쓰기 주의)
* 속성의 값을 띄어쓰기하지 말 것.
출력메시지에 대해서는 띄어쓰기 가능.
주석은 #으로 시작

  • 적용 - mybatis-config.xml에서 설정정보를 properties파일로 분리하여 작성
#디비연결설정 이름=값 주의사항) 설정에는 공백을 넣지 마세요
driver=oracle.jdbc.OracleDriver
connectionURL=jdbc:oracle:thin:@localhost:1521:orcl
username=scott
password=tiger
  • 설정파일과 연결

DTD(Document Type Definition)읽기

  • ',' - 순서대로 : typeAliases?, typeHandlers?, objectFactory?
    xml작성시 순서대로
    <typeAliases></typeAliases><typeHandlers></typeHandlers><objectFactory></objectFactory>
  • '|' - 둘 중 하나 : (properties? | settings?)
    xml작성시 properties나 settings중 하나의 node만 작성가능
  • + - 1~n개 : 반드시 하나의 노드가 작성되어야할 때
    properties+
  • ? - 0~1개 : 노드를 작성하지 않거나 작성한다면 1개만 작성
  • * - 0~n개 : 노드를 작성하지 않거나, 작성한다면 여러 개를 작성할 수 있다.

log

프로그램의 실행정보를 파일로 저장하거나, 출력할 목적으로 사용하는 프로그램
SLF4J, Apache Commons Logging, Log4j 2, Log4j (deprecated since 3.5.9), JDK logging 등 다양한 log가 존재한다.
log는 동작하는 로그레벨이 제공된다.(설정하는 로그레벨에 따라 출력이 달라진다.)
System.out.println(디버그코드); => 반드시 찾아서 삭제해야한다.(관리가 어렵다.)
log level을 사용하면 필요에 따라 출력이 된다. => 소스코드를 건드리지 않아도 된다.

0개의 댓글