by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

iBatis 소개




iBatis 소개

1. iBatis의 이해

1.1 iBatis 란

  • iBatis은 객체와 DB 테이블간의 관계를 매핑시켜 효율적으로 데이터 처리를 할수있는 기능을 제공해 주는 ORM Framework이다.
  • iBatis는 복잡한 객체 매핑을 지원하며, 한 줄의 JDBC 코드 없이 SQL문장을 처리 할 수 있다.
  • iBatis = iBatis SQLMaps + iBatis DAO
  • iBatis SQL Maps = Data Mapper Framework
장점
  • SQL문과 소스 코드 분리로 소스 코드의 간결함을 유지 할 수 있다.
  • 데이터베이스 자원에 대한 관리를 자동으로 해준다.
단점
  • SQL문과 소스 코드가 분리된다는 것은 오히려 지나치게 많은 파일을 생성해서 관리상의 불편함을 초래할 수 있다.
  • XML을 자동으로 reload 하기 위해서 별도의 작업이 필요하다.

1.2 ORM(Object-Relational Mappings) Framework란

  • ORM 이란 객체와의 관계를 맵핑시킨다는 뜻이며, 객체와 DB 테이블과의 관계를 매핑시켜, 좀더 효율적으로 데이타를 처리하는 기능을 제공하는 프레임워크이다.
  • ORM Framework는 데이터베이스 테이블과 객체와의 관계 설정을 자동으로 처리해 준다.
  • 주요 ORM Framework로는 iBatis, Hibernate, Toplink 등이 있다.

1.3 iBatis와 JDBC의 비교

JDBC 프로그래밍
  • JDBC 프로그래밍 DB Connection, Statement, ResultSet 객체를 생성하고 관리해야 한다.
JDBC 프로그램 예
conn = DriverManager.getConnection(url, user, pass);
stmt = conn.prepareStatement();
String sql = "SELECT * FROM employees";
rs = stmt.executeQuery(sql);
while (rs.next()) {
    rs.getString("...");
    rs.getString("...");
    ...
}
rs.close();	
stmt.close();
conn.close();
iBatis 프로그래밍
  • sqlMapClient 를 이용하여 SELECT 및 DML을 처리한다.
  • SQL문장은 별도의 XML 파일로 관리 한다.
  • JDBC 프로그래밍때보다 약 60% 정도 코딩양이 줄어든다.
iBatis 프로그래밍 예
sqlMapClient.queryForList("selectEmpList")

<select id="selectEmpList" resultClass="emp">
    SELECT * FROM emp
</select>

2. Data Mapper의 이해

2.1 iBatis Data Mapper란

  • iBatis Data Mapper는 자바빈즈 객체를 PreparedStatement 파라미터와 ResultSets으로 쉽게 맵핑할 수 있도록 한다.
  • 아래 그림은 테이블과 객체를 SQL문으로 매핑하는 예이다.

2.2 iBatis Data Mapper 구성도

  • SqlMapConfig : iBATIS 환경설정 파일
  • SQL Map 파일 : SQL을 담은 파일
  • 입력 : 원시타입, POJO, Map
  • 출력 : 원시타입, POJO, Map

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.