0

Spring JdbcTemplates を使い始めましたが、SQL について質問があります。

次のコードでは:

String sql = "SELECT * FROM CUSTOMER WHERE CUST_ID = ?"; 
Customer customer = (Customer)getJdbcTemplate().queryForObject(
            sql, new Object[] { custId }, new CustomerRowMapper());

「ID=」とは?意味?このクエリで何を探しているのでしょうか? クエリは未完成のようです。

ありがとう

4

1 に答える 1

1

疑問符は、置き換え可能な SQL パラメータです。2 番目のステートメントの「new Object[] { custId }」パラメーターは、パラメーターの値を提供します。たとえば、「custId」の値が 42 の場合、結果の SQL クエリは「SELECT * FROM CUSTOMER WHERE CUST_ID = 42」になります。パラメータ化された SQL クエリを使用して、SQL インジェクションの悪用の可能性を減らし、クエリ プランのキャッシュを容易にする必要があります。よくわからない場合は、それらについて読むことをお勧めします。

于 2012-12-17T19:22:53.403 に答える