SeouliteLab

iBatis란 본문

프로그래밍

iBatis란

Seoulite Lab 2016. 1. 20. 17:34

iBatis

iBATIS는 간단한 XML서술자를 사용해서 간단하게 자바빈즈를 SQL statement에 맵핑시킨다. 간단함(Simplicity)이란 다른 프레임워크와 객체관계맵핑툴에 비해 iBATIS의 가장 큰 장점이다. iBATIS Data Mapper를 사용하기 위해서 당신은 자바빈즈와 XML 그리고 SQL에 친숙할 필요가 있다. 여기엔 배워야 할것도 거의 없고 테이블을 조인하거나 복잡한 쿼리문을 수행하기 위해 필요한 복잡한 스키마도 없다.

Data Mapper를 사용하면 당신은 실제 SQL문의 모든 기능을 가질수 있다. JDBC 로만 프로그래밍 할 때의 번거로움을 줄여주기 위해 재사용 모듈로 개발된 것이다.




1. iBatis 란 프로그래머가 DB를 보다 편리하게 핸들링 할 수 있게 해주는 ORM(Object Relational Mapping) 프레임워크이다.

2. DB테이블과 JavaBean 등을 Mapping 시켜 DB에 CRUD 작업을 쉽게 할 수 있다.

3. 프로그램소스안의 SQL문을 프로그램에서 분리하여 별도의 XML 파일에 작성함에 따라 수정이 용이하다.


이 정도로 축약(?)이 될 수 있을 것 같다.


(* 자세하게 참조하실 분들은 첨부되는 iBatis 문서를 보시면 될 것 같습니다. 이동국님 번역자료)


현재 iBatis 는 더이상 개발이 중지된 상태(2010년)이며 MyBatis 로 프로젝트가 변경(?)되었다.

이에 따라 신규 프로젝트의 경우 MyBatis 프레임워크를 사용하기도 하지만 기존에 많은 서비스들이 iBatis 로 이루어져 있고 MyBatis 로의 마이그레이션을 해야할 만큼 획기적으로 좋아진 점이 없기 때문에 여전히 iBatis 는 기본적으로 다루어야 할 프레임워크임에는 틀림없다.


인터넷을 찾아 보면 워낙 좋은 자료들이 많이 있고 예제소스도 넘쳐나기 때문에 그 부분은 첨부파일이나 링크로 남겨두고

내가 생각하는 iBatis 프레임워크의 기본개념을 도식화 해보았다.

(뭐든 개념과 전체적인 흐름이 더 중요하다고 항상 생각한다. 나만 알기쉽게 도식화 한 것이므로 일반적인 것과 틀릴 수 있음.)


 

▲ 실제 프로그램이 구동되면

1. SqlMapConfig.java 에서 내부적으로 DataBase 와 Connection 을 맺고 Statement 객체를 생성한 후 해당리소스(SqlMapClient)를 반환하게 된다.

2. 반환된 리소스로 SqlMap.xml 에 정의된 Statement (method라고 생각하면 됨)를 호출하면 끝.


iBatis의 핵심은 SqlMapConfig 에 있다.

지금까지 우리가 했던 DB연동을 위해 JDBC driver를 로드하고 connection 을 맺고 Statement 객체를 통해 Sql문을 실행을 하고 결과를 받고 하는 모든 것들이 SqlMapConifg에서 이루어 진다고 생각하면 된다.


간략하게 Config 부분에 대해 설명을 하면

SqlMapConfig.xml 에서 DB Connect 에 관련된 설정정보들을 작성하고 (SqlMapConfig.properties 로 설정값들을 관리할 수 있다)

SqlMap.xml 에서는 CRUD 에 관련된 sql 문을 작성 및 관리한다고 생각하면 된다. (일반적인 Method 라 생각하고 지정한 input parameter 를 던져 return 값을 받는다고 생각하면 된다.)

그리고 SqlMapConfig.java 에서는 위 xml 를 바탕으로 다른 java class 내에서 DB를 핸들링 할 수 있도록 객체화를 시킨다고 생각하면 된다.


좀 더 자세한 사항같은 경우는 아래 참고 Site 를 참조하고 다음번엔 실제 예제를 등록하는 것으로 iBatis 에 대한 정리는 끝내려고 한다.