Question

Le framework Spring a deux classes similaires: JdbcTemplate est l'ancienne classe Java 1.4 et SimpleJdbcTemplate est plus récent, avec des méthodes plus agréables.

JdbcTemplate a une méthode setQueryTimeout , qui me donne essentiellement accès à une méthode du même nom sur l'objet Statement sous-jacent.

Existe-t-il un moyen de faire quelque chose de similaire avec un SimpleJdbcTemplate ?

Solution : sur la base de la réponse de skaffman, je crée moi-même l'objet SimpleJdbcTemplate à partir d'un JdbcTemplate . Je peux donc faire ce que je veux. Code:

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

Une bouchée, mais fait le travail.

Mettre à jour : il s'agit en effet d'un processus plus compliqué que nécessaire. Voir la réponse.

Était-ce utile?

La solution

SimpleJdbcTemplat e n'est pas un remplacement de JdbcTemplate , il s'agit simplement d'un complément convivial pour java5, pour certaines opérations qui peuvent tirer le meilleur parti des variantes et des génériques.

Si vous regardez le code source de SimpleJdbcTemplate , vous verrez qu'il délègue l'intégralité de son travail à un objet JdbcTemplate , et donc en définissant le délai d'expiration (ou les autres options) sur JdbcTemplate , vous les définissez implicitement sur le SimpleJdbcTemplate également.

Si vous obtenez le SimpleJdbcTemplate via SimpleJdbcDaoSupport.getSimpleJdbcTemplate () , le JdbcTemplate aura déjà été câblé correctement.

modifier:

Par exemple:

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

Le SimpleJdbcTemplate contient le même JdbcTemplate que celui récupéré par getJdbcTemplate ().

Si vous n’étendez pas SimpleJdbcDaoSupport, alors oui, vous devez construire manuellement un SimpleJdbcTemplate.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top