Rumah >Java >javaTutorial >Bagaimanakah saya boleh menggunakan pertanyaan SQL IN() dengan berkesan dengan JDBCTemplate Spring?
Pertanyaan SQL IN() Berkesan dengan JDBCTtemplate Spring
Anda mempunyai pertanyaan IN() yang pada masa ini meminta anda membina klausa dengan berbilang baris kod:
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()); }
Anda mencari cara yang lebih elegan yang serupa dengan parameter pernyataan yang disediakan penggantian.
Menggunakan Sumber Parameter
Untuk mencapai keanggunan yang anda inginkan, anda boleh menggunakan sumber parameter:
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());
NamedParameterJdbcTemplate
Perhatikan bahawa ini hanya berfungsi jika getJdbcTemplate() mengembalikan tika jenis NamedParameterJdbcTemplate.
Atas ialah kandungan terperinci Bagaimanakah saya boleh menggunakan pertanyaan SQL IN() dengan berkesan dengan JDBCTemplate Spring?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!