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 中国語 Web サイトの他の関連記事を参照してください。