Spring の JDBCTemplate は、IN() 句を使用したクエリなどの SQL クエリを効率的に実行する方法を提供します。一般的ではありますが、おそらく最適ではないアプローチを次に示します:
<code class="language-java">StringBuilder jobTypeInClauseBuilder = new StringBuilder(); for(int i = 0; i < jobTypes.length; i++) { Type jobType = jobTypes[i]; if(i != 0) { jobTypeInClauseBuilder.append(','); } jobTypeInClauseBuilder.append(jobType.convert()); }</code>
より洗練された解決策は、パラメーター ソースを使用することです。このメソッドには以下が含まれます:
<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>
以上がSpring の JDBCTemplate はどのように IN() クエリを最適化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。