'Programming/iBatis'에 해당되는 글 1건
- 2012/02/06 IBatis SQL Maps 개발자 가이드 1편
SOL Maps(com.ibatis.sqlmap.*)
- 프로그래머에게 자바빈즈를 PreparedStatement파라미터와 ResultSets로 쉽게 맵핑할수 있도록 해줌.
- 작동방법
1.파라미터(자바빈즈 , Map 또는 원시래퍼)로써 객체를 제공
2. 맴핑된 Statement를 실행한다.
SQL Maps 프레임워크의 하는일의 다이어 그램
- 설치
ibatis-common.jar, ibatis-sqlmap.jar , ibatis-dao.jar를 클래스 패스에 두면됨.
-버젼 update
프로그램에 종속되지 않기 때문에 jar 파일만 바꾼다면 문제가 되지 않을 듯 싶다.
-SQL Map xml 설정파일
sqlMapConfig.xml
|
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE sqlMapConfig <sqlMapConfig>
<transactionManager type="JDBC">
<sqlMap resource="실제경로/MemberSql.xml"/> </sqlMapConfig> |
위 와 같은 내용이 sqlMapConfig 파일에 들어갈 수 있다.
1.<properties> 요소
- DB 연결정보를 가지고 있는 properties 파일이다.
- 사용방법
driver=org.hsqldb.jdbcDriver => <property name="JDBC.Driver" value="${driver}"/>
2.<settings> 요소
- xml파일을 빌드하는 SqlMapClient 인터페이스를 위한 다양한 옵셥과 최적화를 설정함
| 요소명 | 설명 |
| maxRequests |
SQL 문을 수행할수 있는 스레드 수 maxSessions,maxtransactions< maxRequests |
| maxSessions |
주어진 시간동안 활성될 수 있는 세션의수 maxTransaction <maxSessions< maxRequests |
| maxTransactions |
sqlMapClient.startTransaction()에 들어갈수 있는 스레드 최대갯수 maxSessions >=maxTransactions maxRequests>maxTransactions |
| cacheModelsEnabled | 모든 캐쉬 모델을 가능하게 하거나 가능하지 않게 한다.(디버깅시 도움) |
| lazyLoadingEnabled | 모든 늦은(lazy)로딩을 가능하게 하거나 가능하지 않게 한다.(디버깅시 도움) |
| enhancementEnabled | 향상된 늦은(lazy)로딩처럼 최적화된 자바빈즈 속성접근을 휘해 런타임시 바이트코드 향상 |
3.<typeAlias>요소
- DTO클래스의 전제척인 클래스명을 참조하기 위한 짧은 이름을 명시한다.(returnClass 속성에 풀패키명을 적어주지 않아도 된다.)
4.<transactionManager>요소( ${} - >properties 값을 쓴다.)
- 트랜잭션 관리를 설정하도록함.
- type 속성 : JDBC , JTA , EXTERNAL
| type 속성 | 설명 |
| JDBC | Connction commit(),rollback() 메소드를 통해 트랜잭션을 제어하기 위한 JDBC |
| JTA | JTA전역 트랜잭션을 사용(다른 데이터 베이스나 트랜잭션 자원을 포함하는 더욱더 넓은 범위의 트랙잰션 표함) |
| EXTERNAL | 자신이 트랜잭션을 관리하도록한다. 읽기전용 데이터베이스에 유용하다. |
5.<dataSource>요소
- 트랜잭션관리자 설정의 포함된 부분
<transactionManager>
<dataSource ...>
</dataSource>
</transactionManager>
| type 속성 | 설명 |
| SIMPLE |
- iBaits SimpleDataSource connection 풀링을 기초로함 - 사용방법 <transactionManager type="JDBC"> |
| DBCP |
- DataSourcr API를 통한 Connection 풀링 제공하기 위해 Jakarta DBCP(Database Connection Pool)를 사용 - 사용방법 <transactionManager type="JDBC"><dataSource type="DBCP"> <property name="JDBC.Driver" value="${driver}"/> <property name="JDBC.ConnectionURL" value="${url}"/> <property name="JDBC.Username" value="${user}"/> <property name="JDBC.Password" value="${password}"/> <property name="Pool.MaximumActiveConnctions" value="10"/> <property name="Pool.MaximumIdleConnections" value="10"/> <property name="Pool.Maximumait" value="6000"/> <property name="Pool.ValidationQuery" value="select * from ACCOUT"/> <property name="Pool.LogAbandoned" value="false"/> <property name="Pool.RemoveAbandoned" value="false"/> <property name="Pool.RemoveAbandonedTimeout" value="5000"/> </dataSource> </transactionManager> |
| JNDI |
- JndiDataSourceFactory는 JNDI를 통해 DataSource에 접근하는 기능 제공 - 일반적인 JDBC트랜잭션 관리 - 사용방법 <transactionManager type="JDBC"><dataSource type="JNDI"> <property name="DataSource" value="java:comp/env/jdbc/jpetstore"/> </dataSource> </transactionManager> |
|
- 전역 트랜잭션을 설정한다. - 사용방법 <transactionManager type="JTA"> |
6. <sqlMap>요소
- 명시적으로 SOL Map 이나 다른 SQL Map 설정파일을 포함할때 사용
- SqlMapClient 인스턴스에 의해 사용되는 각각의 SQL Map XML 파일은 반드시 선언되어야함.
<!--classpath Resources 클래스 패스다음 경로부터 -->
<sqlMap resource="실제경로/MemberSql.xml"/>
<!--URl resources-->
<sqlMap
url="file:///c:/config/MemberSql.xml"/>
///////////////////////////////////////////////////////////////////////////////////////////
SqlMapConfig.xml의 핵심은
1. URL등 정보를 가지고 있음 - java 코딩에 매번 반복되던 정보를 가지고 있다.
2. sqlMap의 정보를 가지고 있다.
출처: http://wjdtjsdk3621.blog.me/130074366866
다운로드
'Programming > iBatis' 카테고리의 다른 글
| IBatis SQL Maps 개발자 가이드 1편 (0) | 2012/02/06 |
|---|



