simplejdbctemplate에서 setqueryTimeout은 어떻게하나요?
-
05-07-2019 - |
문제
스프링 프레임 워크에는 두 가지 유사한 클래스가 있습니다.
jdbctemplate에는 방법이 있습니다 setQueryTimeout, 기본적으로 기본 명령문 객체에서 동일한 이름의 메소드에 액세스 할 수 있습니다.
비슷한 일을 할 수있는 방법이 있습니까? SimpleJdBctemplate?
해결책: Skaffman의 답변을 바탕으로 나는 SimpleJdbcTemplate
a JdbcTemplate
, 이제 내가 원하는대로 할 수 있습니다. 암호:
JdbcTemplate jdbcTemplate = this.getJdbcTemplate();
jdbcTemplate.setQueryTimeout(30);
SimpleJdbcTemplate simpleJdbcTemplate = new SimpleJdbcTemplate(jdbcTemplate);
약간의 입이지만 일을 끝냅니다.
업데이트: 이것은 실제로 필요한 것보다 더 복잡합니다. 답을 참조하십시오.
해결책
SimpleJdbcTemplat
e는 대체품이 아닙니다 JdbcTemplate
, Varargs와 제네릭을 최대한 활용할 수있는 특정 작업을 위해 Java5 친화적 인 보충제 일뿐입니다.
소스를 보면 SimpleJdbcTemplate
, 당신은 그것이 모든 작업을 JdbcTemplate
객체 및 시간 초과 (또는 다른 옵션)를 설정하여 JdbcTemplate
, 당신은 암시 적으로 그들을 설정합니다 SimpleJdbcTemplate
또한.
당신이 얻는 경우 SimpleJdbcTemplate
~을 통해 SimpleJdbcDaoSupport.getSimpleJdbcTemplate()
, 그런 다음 JdbcTemplate
이미 올바르게 연결되어 있습니다.
편집하다:
예를 들어:
public class MyDao extends SimpleJdbcDaoSupport {
public void doStuff() {
getJdbcTemplate().setQueryTimeout(x);
getSimpleJdbcTemplate().execute(...);
}
}
SimpleJdbctemplate에는 getjdbctemplate ()에 의해 검색된 것과 동일한 jdbctemplate이 포함되어 있습니다.
simplejdbcdaosupport를 확장하지 않으면 예, simplejdbctemplate을 직접 수동으로 만들어야합니다.