Pergunta

O Quadro A mola tem duas classes semelhantes:. JdbcTemplate é a idade, Java 1,4 classe, e SimpleJdbcTemplate é mais recente, com métodos mais agradáveis ??

JdbcTemplate tem um método setQueryTimeout , que basicamente me dá acesso a um método com o mesmo nome no objeto Statement subjacente.

Existe alguma maneira de fazer algo semelhante com um SimpleJdbcTemplate ?

Solução : Com base na resposta de skaffman, eu criar o objeto SimpleJdbcTemplate-me de um JdbcTemplate, então agora eu posso fazer o que quiser. Código:

JdbcTemplate jdbcTemplate = this.getJdbcTemplate();
jdbcTemplate.setQueryTimeout(30);
SimpleJdbcTemplate simpleJdbcTemplate = new SimpleJdbcTemplate(jdbcTemplate);

Um pouco de um bocado, mas começa o trabalho feito.

Atualizar : Este é realmente mais complicado do que o necessário. Veja a resposta.

Foi útil?

Solução

SimpleJdbcTemplate não é um substituto para JdbcTemplate, é apenas um suplemento amigável-java5 a ele, para determinadas operações que podem tirar melhor proveito de varargs e genéricos.

Se você olhar para a fonte para SimpleJdbcTemplate, você verá que ele delega todo o seu trabalho a um objeto JdbcTemplate, e assim, definindo o tempo limite (ou outras opções) em JdbcTemplate, você configurá-los implicitamente no SimpleJdbcTemplate também.

Se você está obtendo o SimpleJdbcTemplate via SimpleJdbcDaoSupport.getSimpleJdbcTemplate(), então o JdbcTemplate já terá sido ligado corretamente.

edit:

Por exemplo:

public class MyDao extends SimpleJdbcDaoSupport {
    public void doStuff() {
        getJdbcTemplate().setQueryTimeout(x);
        getSimpleJdbcTemplate().execute(...);
    }
}

O SimpleJdbcTemplate contém o mesmo JdbcTemplate como é recuperado por getJdbcTemplate ().

Se você não se estendem SimpleJdbcDaoSupport, então sim, você precisa construir manualmente um SimpleJdbcTemplate si mesmo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top