본문 바로가기

iBATIS

[iBatis] 자바빈즈와 Map 타입의 결과 iBatis in Action책을 보다가 기억해 놓을 내용을 발췌해 놓는다. iBatis framework는 결과 매핑에 (Integer, Long 혹은 그 외의 원시 타입의 래퍼 클래스 이외에) Map 이나 자바빈즈 객체를 사용할 수 있다. 이 두가지 접근 방법의 장점과 단점 접근 방식 : 자바빈즈 장점 : 성능, 컴파일 시 강력한 타입 검사, 컴파일 시 이름 검사, IDE에서의 리팩토링 지원, 형변환이 줄어듬 단점 : 코드량의 증가(get/set) 접근 방식 : Map 장점 : 코드량의 감소 단점 : 느림, 컴파일 시 검사하지 않음, 약한 타입, 실행시 오류 발생이 잦음, 리팩토링 지원 없음.
[iBATIS] 8. Annotation 기반으로 JUnit4를 이용한 Spring TDD ~ 9. Reference 8. Annotation 기반으로 JUnit4를 이용한 Spring TDD @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback=true) @RunWith : 테스트를 실행할 org.junit.runner.Runner 구현 클래스를 지정할 수 있다. 스프링은 스프링 컨텍스트 설정 및 DI, 트랜잭션 처리 등을 지원해주는 Runner 구현 클래스를 제공하고 있다. Junit 4 기반의 테스트에서 스프링 컨텍스트에 설정된 빈 객체를 사용하고 싶다면 SpringJunit4ClassRunner 클래스를 @RunWith 어노테이션 값으로 설정하면 된다. @ContextConfiguration : 스프링 컨텍스트를 생..
[iBATIS] 7. iBATIS + Spring + transaction 7. iBATIS + Spring + transaction 1. 코드 기반의 트랜잭션 처리 (Progrmmatic Transaction) 2. 선언적 트랜잭션 (Declarative Transaction) - 태그를 이용 - TransactionProxyFactoryBean 태그를 이용 - @Transactional 어노테이션을 이용 태그 이용 @ Transactional 어노테이션을 이용 @Transactional(readOnly = true) public class DefaultFooService implements FooService { public Foo getFoo(String fooName) { // do something } // these settings have precedence for..
[iBATIS] 6. iBATIS + Spring 6. iBATIS + Spring SqlMapClientFactoryBean (org.springframework.orm.ibatis.SqlMapClientFactoryBean) SqlMapClientTemplate (org.springframework.orm.ibatis.SqlMapClientTemplate) SqlMapClientDaoSupport (org.springframework.orm.ibatis.support.SqlMapClientDaoSupport) 스프링의 iBATIS 연동지원 iBATIS 에서 데이터베이스 연동을 처리할 때 사용되는 SqlMapClient 역시 JDBC 프로그램을 할 때와 마찬가지로 try-catch 블록을 사용해서 예외를 처리해 주어야 한다 . 또한 에러원인에 따라 알..
[iBATIS] 5. Transaction 5. Transaction iBatis 가 지원하는 네 가지 트랜잭션 범위 * 자동 트랜잭션 : 단순한 한 개의 SQL 구문은 명시적으로 구분된 트랜잭션을 필요로 하지 않는다 . * 로컬 트랜잭션 : 간단하고 범위가 좁은 트랜잭션으로 여러 SQL 구문을 포함하지만 단일 데이터베이스에서 수행된다 . * 글로벌 트랜잭션 : 복잡하고 범위가 넓은 트랜잭션으로 여러 SQL 구문을 여러 데이터베이스 혹은 잠재적으로 데이터베이스가 아닌 JMS 의 큐나 JCA 커넥션 같은 다른 트랜잭션이 가능한 리소스상에서 실행된다 . * 사용자 정의 트랜잭션 : 사용자 맘대로 ~ "자동 트랜잭션" 보충 설명. JDBC는 'autocommit(자동커밋)' 모드이고 iBatis는 자동 커밋을 직접 지원하지 않고, 대신 자동 트랜잭션을..
[iBATIS] 4. How to 4. How to 1. 객체를 파라미터로 전달 JavaBeans, Map or primitive wrapper 2. 매핑되는 SQL 문장을 수행 SQL Maps 프레임워크는 PreparedStatment 인스턴스 생성 객체로부터 제공되는 값들을 파라미터로 세팅 3. SQL 문장을 수행하고 ResultSet 으로부터 결과 객체를 생성 . Update 의 경우에는 영향을 받은 rows 수가 반환 쿼리의 경우 하나 혹은 여러 객체들이 반환 결과객체는 자바빈즈 , Map 원시타입래퍼 또는 XML 이 될 수 있다 . SQL Maps 설정파일 -SqlMapConfig.xml
[iBATIS] 1.Overview ~ 3. Introduce iBATIS iBATIS 1. Overview2. Why use iBATIS?3. Introduce iBATIS4. How to5. Transaction6. iBATIS + Spring7. iBATIS + Spring + transaction8. Annotation 기반으로 JUnit4를 이용한 Spring TDD9. Reference 1. Overview 개발자에게 JavaBeans objects를 PreparedStatement parameters와 ResultMaps로 쉽게 매핑을 할 수 있도록 한다. 이를 통하여 database에 접근하기 위한 자바코드의 양을 줄일수있다.현재 iBatis는 세가지 언어: 자바, C#, Ruby로 구현되어 있다. 2. Why use iBATIS?OR맵핑툴을 사용하지 않을때 하위..