2009-08-18 2 views
2

저는 Spring의 JDBC 지원을 사용하여 Oracle 데이터베이스에서 SQL 쿼리와 업데이트를 실행하고 있습니다. 난 행을 삽입하고 오라클 시퀀스를 사용하여 할당 된 키를 얻고 싶습니다. 일반적인 JDBC 코드에서 RETURNING INTO 절을 포함시킨 다음 출력 매개 변수를 등록 (well described here)Spring의 JDBC 지원을 사용하여 출력 매개 변수 얻기

그러나 Spring을 사용하여 모든 JDBC 작업을 처리하고 싶습니다. 삽입하지 않은 SQL 문에 대해 현재 MapSqlParameterSource 개체를 사용하고 모든 입력 매개 변수를 등록하고 있습니다. 이와 같은 출력 매개 변수를 등록하고 반환 할 수 있습니까? Spring 문서의 11 장 부분을 살펴 봤는데 저장 프로 시저를 사용하는 경우 출력 매개 변수에 대한 지원이 있다는 것을 알았지 만 가능한 경우 그렇게하지 않는 것이 좋습니다. 감사.

답변

1

나는 봄 JDBC 지원 API는 OUT 매개 변수에 대한 명시 적 지원을 제공합니다 생각하지 않는다, 그래서 당신은 JdbcTemplate가 제공하는 더 일반적인 쿼리 API 다시 조금 단계로 사용해야 할 수도 있습니다 :

Object execute(PreparedStatementCreator psc, PreparedStatementCallback action) 

이것은 수를 Spring 관리 연결의 범위 내에서 임의의 JDBC 작업을 수행하고 PrepatedStatement을 수행합니다. 단점은 ResultSets과 같은 것들의 처리와 정리가 문제가된다는 것입니다.

+0

나는 두려웠다. 그래도 PreparedStatementCreator를 봐야 할 것이다. Spring을 사용하는 주요 이유는 프레임 워크에서 연결 정보를 가져 와서 JDBC 코드를 깔끔하게 유지하는 것이 었습니다. try/catch/finally 코드로 돌아간 것 같습니다. –

+0

Spring은 여전히 ​​연결과 구문 처리를 담당합니다. – skaffman