0

jdbcTemplate を使用してストアド プロシージャを実行しようとしていますが、GetEvents が 0 引数を予期しているというエラーが表示され続けます。なぜこのストアドプロシージャを実行するためのより良い方法があるのでしょうか?

私が得ているエラーは次のとおりです:
org.springframework.dao.InvalidDataAccessApiUsageException: SQL [CALL GetEvents(?, ?, ?)]: given 3 parameters but expected 0

手順

mysql> CREATE PROCEDURE GetEvents(IN search_table VARCHAR(255), IN start TIMESTAMP, IN end TIMESTAMP)
    -> BEGIN
    -> SELECT COUNT(*)
    -> FROM search_table
    -> WHERE time >= start AND time <= end;
    -> END //
Query OK, 0 rows affected (0.02 sec)

ジャワ

public int getEnterExitsAll(DateTime start, DateTime end) {
    Map<String, String> params = new HashMap<String, String>();
    params.put("search_table", TABLE_ENEX);
    params.put("start", start.toString());
    params.put("end", end.toString());
    return template.queryForInt("CALL GetEvents(?, ?, ?)", params);
4

1 に答える 1

1

end変数の命名(予約済みのキーワード)が原因であると思われます。endtoendTimestarttoなどの名前に変更してみてくださいstartTime

于 2012-11-04T04:31:20.647 に答える