Spring の JDBCTemplate を使用した IN() クエリの最適化
Spring の JDBCTemplate を使用する場合、多くの場合、IN() クエリを効率的に実行する必要があります。 IN 句を手動で構築するのは面倒な場合がありますが、Spring ではパラメータ ソースを使用したより洗練されたソリューションが提供されます。
NamedParameterJdbcTemplate によるパラメータ置換
IN() クエリがあるとします。ジョブタイプのリスト付き。手動で句を構築する代わりに、MapSqlParameterSource と NamedParameterJdbcTemplate を使用して、パラメータ置換で同じ結果を得ることができます。その方法は次のとおりです。
Set<Integer> jobTypes = ...; MapSqlParameterSource parameters = new MapSqlParameterSource(); parameters.addValue("ids", jobTypes); List<Foo> foo = getJdbcTemplate().query("SELECT * FROM foo WHERE a IN (:ids)", parameters, getRowMapper());
このソリューションでは、getJdbcTemplate() が NamedParameterJdbcTemplate 型のインスタンスを返す必要があります。そうでない場合は、NamedParameterJdbcTemplate コンストラクターを使用して明示的に作成できます。
パラメーター ソースの利点
パラメーター ソースを使用すると、次のような利点があります。
以上がSpring の JDBCTemplate を使用して IN() クエリを最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。