Mon*_*ael 9 java database spring jdbc
我在Spring Dao中有以下代码可以正常工作 -
Object args[] = { userId, restaurantId };
int userOrderCount = getJdbcTemplate()
.queryForInt(
"SELECT COUNT(orderid) FROM orders WHERE useridfk_order = ? AND restaurantidfk_order = ?",
args
);
Run Code Online (Sandbox Code Playgroud)
但是,如果我决定使用NamedParameters作为我的查询,如下所示 -
int userOrderCount = getNamedParameterJdbcTemplate()
.queryForInt(
"SELECT COUNT(orderid) FROM orders WHERE useridfk_order = :userId AND restaurantidfk_order = :restaurantId",
new MapSqlParameterSource(":restaurantId", restaurantId)
.addValue(":userId", userId)
);
Run Code Online (Sandbox Code Playgroud)
我得到这个例外 -
org.springframework.dao.InvalidDataAccessApiUsageException: No value supplied for the SQL parameter 'userId': No value registered for key 'userId'.
Run Code Online (Sandbox Code Playgroud)
我知道金色的格言"如果没有破坏就不要修理它".
但是,我仍然不禁想知道为什么会这样?
eri*_*urk 26
用这个.
new MapSqlParameterSource("restaurantId", restaurantId)
.addValue("userId", userId);
Run Code Online (Sandbox Code Playgroud)
而不是这个.
new MapSqlParameterSource(":restaurantId", restaurantId)
.addValue(":userId", userId);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30949 次 |
| 最近记录: |