한번의 DB 접속으로 여러번의 Select
- 작성자 :
- 곽*형
- 작성일 :
- 2013-10-09 23:38:24
- 조회수 :
- 1,558
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하세요
항상 수고가 많으십니다.
다름이 아니라 Service 클래스에서 한번의 DB 접속으로 여러 번의 DAO클래스의 조회성 메소드를 실행하고 싶습니다.
제가 알고 있기로는 트랜젝션 설정만하면 되는줄 알고 있는데 맞는것인가요.
일단 트랜젝션 설정 부분과 소스는 첨부파일로 드립니다.
**** 로그를 보면 모든 쿼리 앞에
DEBUG [java.sql.Connection] {conn-100027} Connection
2013-10-09 23:29:13,441 DEBUG [org.springframework.orm.ibatis.SqlMapClientTemplate] Obtained JDBC Connection [Transaction-aware proxy for target Connection from DataSource [org.apache.commons.dbcp.BasicDataSource@115632d]] for iBATIS operation
와 같이 로그가 나옵니다. 쿼리를 실행 할때 마다 DB에 새로운 Connection이 이루어 지는 것 같아 문의 드립니다.
감사합니다.
항상 수고가 많으십니다.
다름이 아니라 Service 클래스에서 한번의 DB 접속으로 여러 번의 DAO클래스의 조회성 메소드를 실행하고 싶습니다.
제가 알고 있기로는 트랜젝션 설정만하면 되는줄 알고 있는데 맞는것인가요.
일단 트랜젝션 설정 부분과 소스는 첨부파일로 드립니다.
**** 로그를 보면 모든 쿼리 앞에
DEBUG [java.sql.Connection] {conn-100027} Connection
2013-10-09 23:29:13,441 DEBUG [org.springframework.orm.ibatis.SqlMapClientTemplate] Obtained JDBC Connection [Transaction-aware proxy for target Connection from DataSource [org.apache.commons.dbcp.BasicDataSource@115632d]] for iBATIS operation
와 같이 로그가 나옵니다. 쿼리를 실행 할때 마다 DB에 새로운 Connection이 이루어 지는 것 같아 문의 드립니다.
감사합니다.
A
안녕하세요. 곽호형님.
우선 내부적으로 SqlMapClientTemplate가 매번 새로은 SqlMapSession을 생성하도록 되어 있어서 개별적으로 dataSource를 얻도록 되어 있습니다.
내부적으로 transaction 처리를 위한 Spring-managed Connection을 사용하기 위한 필요한 상황이라고 spring쪽 소스 상에 설명되어 있습니다.
Data Connecton Pool을 사용하는 경우는 크게 문제가 되지 않을 것으로 판단됩니다.
추가적으로 DAO에서 getSqlMapClientTemplate() 메소드를 통해 SqlMapClientTemplate를 가져와서 배치 방식으로 여러 건의 select를 처리하시면 하나의 SqlMapSession을 사용할 수 있기 때문에 처리가 가능합니다.
그럼, 즐거운 하루되십시오.
감사합니다.
우선 내부적으로 SqlMapClientTemplate가 매번 새로은 SqlMapSession을 생성하도록 되어 있어서 개별적으로 dataSource를 얻도록 되어 있습니다.
내부적으로 transaction 처리를 위한 Spring-managed Connection을 사용하기 위한 필요한 상황이라고 spring쪽 소스 상에 설명되어 있습니다.
Data Connecton Pool을 사용하는 경우는 크게 문제가 되지 않을 것으로 판단됩니다.
추가적으로 DAO에서 getSqlMapClientTemplate() 메소드를 통해 SqlMapClientTemplate를 가져와서 배치 방식으로 여러 건의 select를 처리하시면 하나의 SqlMapSession을 사용할 수 있기 때문에 처리가 가능합니다.
그럼, 즐거운 하루되십시오.
감사합니다.