1. ホーム
  2. java

[解決済み] JDBCの名前付きパラメータ [重複]。

2023-07-18 20:22:19

質問

JDBCでは、位置指定ではなく、名前付きのパラメータがあるのですか? @name , @city を以下のADO.NETクエリで使用できますか?

select * from customers where name=@name and city = @city

どのように解決するのですか?

JDBCは名前付きパラメータをサポートしていません。プレーンなJDBCを使用することに縛られているのでなければ(これは苦痛です。)、IoCコンテナ全体を使用せずに使用できるSprings Excellent JDBCTemplateを使用することをお勧めします。

ネームドパラメータJDBCTemplate は名前付きパラメータをサポートしているので、そのように使用することができます。

 NamedParameterJdbcTemplate jdbcTemplate = new NamedParameterJdbcTemplate(dataSource);

 MapSqlParameterSource paramSource = new MapSqlParameterSource();
 paramSource.addValue("name", name);
 paramSource.addValue("city", city);
 jdbcTemplate.queryForRowSet("SELECT * FROM customers WHERE name = :name AND city = :city", paramSource);