使用 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中文網其他相關文章!