본문 바로가기

IT/JAVA(Framework)

[JAVA] getSqlMapClientTemplate, getSqlMapClient

반응형

DAO쪽을 작업하다가보면 getSqlMapClientTemplate, getSqlMapClient 요 녀석들을 만나게 되는데 요 녀석들에 대한 차이점에 대해서 포스팅한다.

 

getSqlMapClientTemplate()

이녀석은 자동으로 트랜젝션을 처리해준다.
예를 들어

for(int i=0; i<paramList.size(); i++){
      getSqlMapClientTemplate().update("test.updateTest",paramList);
}

이런식으로 처리한다면 update한번마다 자동으로 트랜젝션 처리가 되도록 되어있다.
물론 간편하고 쓰기도 좋지만 위와같이 여러건을 execute해야하는 경우
여러건을 전부 실행하고 이상이 없으면 commit해야 하는 경우가 대부분이다.

 

getSqlMapClient()

그럴때 사용되는 녀석이 바로 요놈이다.
예를 들면

getSqlMapClient sql = getSqlMapClient();
sql.startTransaction();
sql.startBatch();
for(int i=0; i<paramList.size(); i++){
      sql.update("test.updateTest",paramList);
}
sql.executeBatch();
sql.commitTransaction();


위와같은 방법을 로컬트랜젝션(일괄처리)기법이라 한다.
이처럼 처리하면 일괄 처리 할수 있으므로 여러건을 하나의 트랜젝션으로 묶어줄경우 좋다.
속도또한 자동처리보다 빨라 번거럽게 보이지만 훨씬 효율적일 수 있다.

반응형