Rumah >pangkalan data >tutorial mysql >Bagaimanakah JDBCTemplate Spring Boleh Mengoptimumkan Pertanyaan IN()?
JDBCTemplate Spring menyediakan cara untuk melaksanakan pertanyaan SQL dengan cekap, termasuk pertanyaan menggunakan klausa IN(). Berikut ialah pendekatan biasa, tetapi mungkin tidak optimum:
<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>
Penyelesaian yang lebih elegan ialah menggunakan sumber parameter. Kaedah ini termasuk:
<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>
Atas ialah kandungan terperinci Bagaimanakah JDBCTemplate Spring Boleh Mengoptimumkan Pertanyaan IN()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!