Log4j로 검색한 결과 :: 시소커뮤니티[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

회원가입 I 비밀번호 찾기


SSISO Community검색
SSISO Community메뉴
[카페목록보기]
[블로그등록하기]  
[블로그리스트]  
SSISO Community카페
블로그 카테고리
정치 경제
문화 칼럼
비디오게임 스포츠
핫이슈 TV
포토 온라인게임
PC게임 에뮬게임
라이프 사람들
유머 만화애니
방송 1
1 1
1 1
1 1
1 1
1

Log4j로 검색한 결과
등록일:2008-03-14 15:29:02
작성자:
제목:iBatis Framework란


  •  iBatis Data Mapper Framework란
  •  Version 2.3.0.677 기준

 

 

- 소개

iBatis Data Mapper Framework는 일반적인 관계형 데이터베이스에 접근할 때 필요한 자바코드를 현격하게 줄일수 있도록 도와준다.

iBatis는 매우 간단한 XML Descriptor를 사용하여 SQL statemnt를 간단하게 JavaBeans와 mapping시킨다.

간단함은 다른 Framework이나 ORM Tool들 보다 큰 장점이 된다 .

iBatis Data Mapper 를  사용하기 위해서는 JavaBeans, XML ,SQL과  와 친숙해야 한다. 만은 양의 스킬을 요구하는 것은 아니며, Join Table절이나 복잡한 Query를 수행하거나 복잡한 Schemae를 요구하는 정도는 아니다는 말이 된다.

iBatis Data Mapper를 사용하므로 사용자는 간단한 Query를  파워풀하게 사용할 수 있을 것이다.

 

 

- 개념

iBatis Data Mapper Framework API는  프로그래머에게 쉽게 JavaBeans Object를 PreparedStatement parameter 와 ResultSet에 mapping하는 방법을 제공한다.

기본 개념의 사상은 간단함을 제공하기 위함이다. 이 말은 JDBC Code의 기능적인 부분 20%만 활용하여 80%만큼의 기능을 제공하고자 함에 있다.

 

- 어떻게 작동이 되는가?

Data Mapper provider는 XML descriotor를 JavaBeans에 mapping 그리고 , Map implementation , Wrapper Type활용 , XML Document 를 SQL statement에 활용하는 매우 간단한 Framework이다.

 

다음은 상위 level Descriotion 의 생명 주기를  보여준다.

     1. parameter로  JavaBeans , Map , 기본적인 Wrapper 들을  제공한다. 이 parameter Object는 updae Statement또는

         기타   Query문의 where 절에 input value를 set하기 위해 사용된다.

 

     2. mapping된 statement를 Execute하기 위해 사용된다. 이 단계에서 magic 이 실행되는데,

        Data Mapper Framework은 preparedStatement instance를 생성하며 , 제공된 parameter Object를 parameter를

        set하고 statement를 실행 한 후 ResultSet으로부터 Result Object를 생성한다.

 

     3. update의 경우에는 영향을 받은 개수가 반환되며 , 일반적인 Query의 경우 single Object

        또는 collection Framework Object를 반환한다. parameter와 같이 반환 Object는 JavaBeans , Map ,

        기본적인 Wrapper 타입 그리고 XML이 될 수 있다.

 

< 아래의 그림은 Flow를 나타낸다 >

 

- install

iBatis Data Mapper Framework을 설치 하기 위해서는 간단하게 적절한 JAR파일을 classpath상에 잡어 주기만 하면 된다.

또 한 ,( java -cp argument) 명령을 사용하여 VM 시작 시간에 옵션을 지정하여도 되며 , WEB Application은 /WEB-INF/lib 폴더에 jar파일을 위치 시켜도 된다.  classpath의 자세한 내용은 본 내용에서 다룰 부분은 아니므로 생략한다.

 

그리고 java혹은 classpath에 관한 내용들에 대해서는 다음의 문서들을 참조 하기 바란다.

http://java.sun.com/j2se/1.4/docs/tooldocs/win32/classpath.html
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ClassLoader.html
http://java.sun.com/j2se/1.4.2/docs/

 

iBatis는 single JAR파일을 제공한다. 그리고 JAR의 파일명은 다음과 같은 형식으로 제공된다.

ibatis-version.build.jar

예를 들어 ibatis-2.3.0.677.jar 가 해당된다.

일반적으로 application의 classpath에만 충분히 위치시키기만 하면 된다.

 

- JAR 파일과 의존성

다 른 Framework과 많은 의존성을 가지게 되면 application 통합에 있어 어려움을 겪게 된다. 2.0의 key point는 의존성 관리와 감소에 있다.  따라서 JDK1.4의 버전의 경우 다른Jar에  의존성이 필요가 없으며 , 선택적으로 다음의 JAR파일들은 해당 WebSite에서 다운로드 받을 수 있다. 기능별로 그룹화가 되어 있으며 아래의 리스트는 선택적으로 package목록이다.

 

설 명

 

 언제 사용되는가

 Dependency

 - Legacy JDK SupportJDK1.4이하의 버전을 사용하거나 app server가 JARs를 지원하지 않을 경우 이 선택적 package가 필요하다.  JDBC 2.0 Extensions
http://java.sun.com/products/jdbc/download.html
JTA 1.0.1a
http://java.sun.com/products/jta/
Xerces 2.4.0
http://xml.apache.org/xerces2-j/
 - iBATIS Backward CompatibilityiBatis 1.x Dao Framework 또는 Data Mapper 1.x 를 사용한다면 이 package가 필요하며 ,  classpath에 추가하여 간단하게 사용 할 수 있다.iBATIS DAO 1.3.1
http://sourceforge.net/projects/ibatisdb/
 - Runtime Bytecode EnhancementCGLIB 2.0 bytecode를 사용하여  lazy loading이나 performance를 향상시키려 하고자 할때CGLIB 2.0
http://cglib.sf.net
 - DataSource Implementation Jakarta의 DBCP Connection Pool을 사용하고자 할때DBCP 1.1
http://jakarta.apache.org/commons/dbcp/
 - Distributed Caching OSCache를 사용한 중앙화 및 분산 Cache를 하고자 할때OSCache 2.0.1
http://www.opensymphony.com/oscache/
 - Logging Solution Log4j를 사용하고자 할때Log4j 1.2.8
http://logging.apache.org/Log4j/docs/
 - Logging Solution Jakarta Commons Logging을 사용하고자 할때Jakarta Commons Logging
http://jakarta.apache.org/commons/logging

 

- 1.x에서 Upgrade 하기

 

Upgrade를 할 것인가?

 

Upgrade를 결심했다면 시도 해보는 것이 가장 좋은 방법이며 , 다음과 같은 몇가지 방법들이 존재한다.

 

     1. Version 2.0은 1.x Release와 거의 완벽하게 호환이 되도록 유지된다. 그래서 몇몇 사람들은 JAR파일 교체만으로 충분할

         수 있다. 이 방법은 가장 간단할 뿐 아니라 가장 이득이 적다. Java Coe와 XML을 수정할 필요가 없으며 호환이 안되는

         부분이 발생할 수 있다.

 

     2. 두번ㅤㅉㅒㅤ 옵션은  XML 파일들을 2.0 specification에 맞게 바꾸어 주는 것이다. 그러나 1.x 의 Java API는 그대로 사용

         해야 한다. 이 방법은 file mapping하는데 있어서  적은 호환성 문제가 야기 되는 안전한 방법이다(거의 발생 안함)

         Framework에는 XML 파일을 변경해주는 ant Task를 포함되어 있다.

 

      3. 세번째 옵션은 XML File( #2 참조 )들과 Java Code를 변경하는 것이다.  Java Code를 변경해주는 Tools는 없음 따라서

          손으로 변경해야 한다.

    

       4. 네번째 방법은 전혀 Upgrade를 하지 않는 방법이다. 어려움을 겪고 있다면 두려워 말고 개발 System을  1.x Release로

           남겨 놓자. 기존의 1.x Release는 그대로 남겨 놓은 채 신규 Application만 2.x로 시작하는 것은 나쁜 방법이 아니다.

           문론 , 오래된 Application이 무겁게 인지되는 시점을 넘도록 Refactoring 되었다면 , 어찌 되었든 Data Mapper를

           Upgrade를 하자.

        

- 1.x 에서 XML Configuration Files 2.x로 변경하기

2.0 Framework은 Ant build System을 이용한 XML Document 변환기가 존재한다.  1.x code를 완벽한 선택옵션에 의해서 XML Document를 변경하는 작업은 순식간에 일어난다. files들을 한번쯤은 편안함을 위해 Upgrade할 생각을 갖는거은 좋은 생각이다.

몇몇 issue들을 경험할 수도 있지만 아직도 1.x의 API를 사용하더라도 새로운 특징의 이점들 또한 있을 것이다.

 

ant Task는 build.xml파일에 다음과 같이 보일것이다.

<taskdef name="convertSqlMaps" classname="com.ibatis.db.sqlmap.upgrade.ConvertTask" classpathref="classpath"/>
<target name="convert">
   <convertSqlMaps todir="D:/targetDirectory/" overwrite="true">
   <fileset dir="D/sourceDirectory/">
      <include name="**/maps/*.xml"/>
   </fileset>
   </convertSqlMaps>
</target>

위 에서 볼 수 있듯이 정확하게 ant의 copy Task와 같이 수행한다. 그리고 사실 ant의 copy Task를 확장하였기에 copy를 해야하는 작업들을 어떤것이나 당신은 할 수가 있다.( 자세한 내용은 ant의 copy Task Document 를 참조 )

 

Jar File들 : 이전 것들을 빼내고 , 새로운 것들을 넣자.

Upgrad 할 때 , iBatis의 오래된 파일들과 Dependency들을 제거하고 새로운 파일들로 교체하는 것은  좋은 생각이다. 다른 필요한 Framework이나 Component를 삭제하기 않도록 주의해야 한다. 대부분의 Jar파일들은 순환적으로 의존적임에 명심해야 한다.

Jar파일과 Dependency에 대한 논의된 부분을 참조하기 바란다.

 

- 아래는 오래된 파일과 신규 파을들을 요약한 것이다.

 

Old Files

 

 New Files

iBatis-db.jar

1.2.9b Release부터 다음의 3개 file로 분할되었다.

ibatis-common.jar

ibatis-dao.jar

ibatis-sqlmap.jar

  ibatis-version.buid.jar(필수)
 

commons-logging.jar

commons-logging-api.jar

commons-collections.jar

commons-dbcp.jar

commons-pools.jar

oscache.jar

jta.jar

dbcp2_0-stdext.jar

xercesImpl.jar

xmlParseAPIs.jar

jdom.jar

 

commons-logging-1-0-3.jar (선택)
commons-collections-2-1.jar (선택)
commons-dbcp-1-1.jar (선택)
commons-pool-1-1.jar (선택)
oscache-2-0-1.jar (선택)
jta-1-0-1a.jar (선택)
jdbc2_0-stdext.jar (선택)
xercesImpl-2-4-0.jar (선택)
xmlParserAPIs-2-4-0.jar (선택)
xalan-2-5-2.jar (선택)
Log4j-1.2.8.jar (선택)
cglib-full-2-0-rc2.jar (선택)