본문 바로가기

mybatis

01. mybatis 란?

mybatis는 Persistence Framework의 한 종류이다.


Persistence라는 용어는 개발분야에서 데이터의 지속성을 의미한다.

즉 데이터 지속성을 지원하는 프레임워크라는 뜻이다.


프로그램의 복잡함과 번거로움 없이 간단한 작업만으로 데이터베이스와 연동되는 시스템을 빠르게 개발할 수 있다.


퍼시스턴스 프레임워크에는 SQL 문장으로 직접 DB데이터를 다루는 'SQL맵퍼'와 자바 객체를 통해 간접적으로 DB데이터를 다루는 '객체 관계 맵퍼'가 있다.


mybatis는 SQL맵버

하이버네이트(Hibernate), 탑링크(TopLink)는 객체관계 맵퍼.



JDBC 프로그램 소스를 들여다 보면 많게는 거의 90% 이상이 Database 관련 소스들이다. 

단편적이지만 일반적인 JDBC 소스이다.



...
public int insert(Member member) throws Exception  {
    Connection connection = null;
    PreparedStatement stmt = null;

    try {
      connection = ds.getConnection();
      stmt = connection.prepareStatement(
          "INSERT INTO MEMBERS(EMAIL,PWD,MNAME,CRE_DATE,MOD_DATE)"
              + " VALUES (?,?,?,NOW(),NOW())");
      stmt.setString(1, member.getEmail());
      stmt.setString(2, member.getPassword());
      stmt.setString(3, member.getName());
      return stmt.executeUpdate();

    } catch (Exception e) {
      throw e;

    } finally {
      try {if (stmt != null) stmt.close();} catch(Exception e) {}
      try {if (connection != null) connection.close();} catch(Exception e) {}
    }
  }
...

작업에 중요한 SQL 문구가 반정도 인 반면 커넥션이나 예외처리가 반을 차지하고 있다. 이렇다 보니 편집기에서 보면 거의 한 페이지 불량이다. 여기에 기본적으로 update구문, delete구문, select 구문이 추가되면 그만큼 또 소스는 늘어갈 것이다. 굉장히 간단한 테이블임에도 불구하고 소스의 양은 만만치 않다. 소스의 양이 만만치 않다는 것은 소스의 이해도를 떨어지게하고 나아가 원활한 유지보수를 어렵게한다.


해서 SQL 문구를 소스코드에서 때어내어 별도의 파일 'SQL 맵퍼'로 분리해 낸다.



'mybatis' 카테고리의 다른 글

다중쿼리 사용하기  (0) 2016.08.12