Rumah >Java >javaTutorial >Bagaimanakah saya boleh menggunakan pertanyaan SQL IN() dengan berkesan dengan JDBCTemplate Spring?

Bagaimanakah saya boleh menggunakan pertanyaan SQL IN() dengan berkesan dengan JDBCTemplate Spring?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-25 01:53:10668semak imbas

How can I effectively use IN() SQL queries with Spring's JDBCTemplate?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn