」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何透過 Spring 的 JDBCTemplate 有效地使用 IN() SQL 查詢?

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

發佈於2024-11-16
瀏覽:654

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

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

使用參數來源

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

Set ids = ...;

MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("ids", ids);

List foo = getJdbcTemplate().query("SELECT * FROM foo WHERE a IN (:ids)",
     parameters, getRowMapper());

NamedParameterJdbcTemplate

請注意,僅當 getJdbcTemplate() 傳回 NamedParameterJdbcTemplate 類型的實例時才有效。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3