首頁 >Java >java教程 >如何透過 Spring 的 JDBCTemplate 有效地使用 IN() SQL 查詢?

如何透過 Spring 的 JDBCTemplate 有效地使用 IN() SQL 查詢?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-25 01:53:10713瀏覽

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

使用 Spring 的 JDBCTemplate 進行有效的 IN() SQL 查詢

您有一個 IN()查詢,目前需要您建立一個包含多行的子句程式碼:

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());
}

你尋求一種更優雅的方式,類似於準備語句的參數

使用參數來源

要實現您想要的優雅,您可以使用參數來源:

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

請注意,這僅在以下情況下有效getJdbcTemplate() 傳回 NamedParameterJdbcTemplate 類型的實例。

以上是如何透過 Spring 的 JDBCTemplate 有效地使用 IN() SQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn