IN()
avec le modèle JDBC de Spring Le modèle JDBC de Spring offre une approche simplifiée de la gestion IN()
des requêtes, évitant ainsi les complexités de la construction manuelle de clauses. Au lieu d'opérations StringBuilder
lourdes, une solution plus élégante exploite les sources de paramètres.
Exemple illustratif :
La méthode traditionnelle consiste souvent à construire la clause IN()
manuellement :
<code class="language-java">StringBuilder jobTypeInClauseBuilder = new StringBuilder(); for (int i = 0; i < ids.size(); i++) { jobTypeInClauseBuilder.append("?,"); } String jobTypeInClause = jobTypeInClauseBuilder.substring(0, jobTypeInClauseBuilder.length() - 1); List<Foo> foo = getJdbcTemplate().query("SELECT * FROM foo WHERE a IN (" + jobTypeInClause + ")", ids.toArray(new Integer[0]), getRowMapper());</code>
Cette approche est verbeuse et sujette aux erreurs. Une alternative supérieure utilise une source de paramètres :
<code class="language-java">Set<Integer> ids = ...; MapSqlParameterSource parameters = new MapSqlParameterSource(); parameters.addValue("ids", ids); List<Foo> foo = getJdbcTemplate().query("SELECT * FROM foo WHERE a IN (:ids)", parameters, getRowMapper());</code>
Cette méthode est nettement plus concise et efficace. Si getJdbcTemplate()
renvoie une instance NamedParameterJdbcTemplate
, la source du paramètre gère automatiquement la génération de la clause IN()
, éliminant la concaténation manuelle des chaînes et améliorant les performances.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!