Disclaimer: 인터넷의 여러 자료를 참고하여 만들었음
- iBatis application
- 설정 파일
- applicationContext.xml
- SqlMapConfig.xml
- TradingSQLMap.xml
- 소스코드
- com/developersBook/iBatis/client/IBatisClient.java
- com/developersBook/iBatis/domain/Trade.java
- com/developersBook/iBatis/service/ITradeService.java
- com/developersBook/iBatis/service/TradeServiceImpl.java
- https://github.com/terzeron/JavaTest/tree/master/iBatisTest
- SQLite3
- SQLite3 JDBC Driver
- Spring Framework Libraries
- org.springframework.context-*.jar
- org.springframework.context.support-*.jar
- org.springframework.beans-*.jar
- org.springframework.core-*.jar
- org.springframework.asm-*.jar
- org.springframework.expression-*.jar
- org.springframework.orm-*.jar
- org.springframework.jdbc-*.jar
- org.springframework.transaction-*.jar
- http://org.springsource.org.apache.common.logging-*.jar
- http://org.springsource.org.apache.common.dbcp-*.jar
- http://org.springsource.org.apache.common.pool-*.jar
- http://org.springsource.com.ibatis-*.jar
- 아주 간단한 질의를 수행하는데, JDBC를 직접 호출하는 대신에 iBatis를 이용하여 수행되도록 작성된 예제임
UPDATE trade SET state = 'EXECUTED' WHERE trade_id = 번호
SELECT trade_ide, side, symbol, shares, price, state FROM trade WHERE trade_id = 번호
- iBatis를 직접 제어하지 않고 Spring framework을 이용하여 제어함
- DBMS를 설치하는 작업이 부담스러워 PC에 SQLite와 JDBC를 설치해서 DB를 구성하였음
- application의 소스코드는 위 예제를 참고할 것
- spring framework의 라이브러리는 Spring Framework 3.0.2.RELEASE를 사용하였고
- spring-framework-3.0.2.RELEASE.zip이 기본이고
- spring-framework-3.0.2.RELEASE-dependencies.zip에 스프링이 지원하는 외부 라이브러리들이 모두 포함되어 있음 (all-in-one)
- 간단한 예제 하나에도 최소 3개의 xml 설정 파일과 4개의 소스 파일을 작성해야 함
- DB와 스프링 프레임웍 관련 설정 작업은 이미 다 되어 있다고 가정하더라도 “특정 컬럼 값 변경 1건”이라는 비즈니스 로직의 구현에 대한 개발 범위가 좀 큰 편
- 그러나 두번째 비즈니스 로직의 구현이라면 훨씬 쉬울 수도 있지 않을까?
- JDBC를 이용해 직접 개발하는 것보다 개발 비용이 적게 발생할 것인가?
- 질의문을 변경해도 설정파일에 작성하는 것이기 때문에 소스코드를 다시 컴파일할 필요가 없다는 장점이 있으나, 질의문과 소스코드가 서로 독립적이라는 가정은 너무 순진한 게 아닌가?
- 질의문에 대한 고민을 잊고 객체들의 관계 설정에만 신경을 쓰면 되기 때문에 추상적인 수준에서의 개발이 가능하다.