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 参数。第二条语句中的“new Object[] { custId }”参数提供了参数的值。例如,如果“custId”的值为 42,那么生成的 SQL 查询将是“SELECT * FROM CUSTOMER WHERE CUST_ID = 42”。您应该使用参数化 SQL 查询来减少 SQL 注入攻击的可能性并促进查询计划的缓存。如果您不熟悉,我建议您阅读它们。

于 2012-12-17T19:22:53.403 回答