簡體   English   中英

在Java中執行MySQL存儲過程

[英]Execute MySQL Stored Procedures in Java

我正在嘗試使用jdbcTemplate執行存儲過程,但我不斷收到一條錯誤消息,說GetEvents需要0個參數。 誰能闡明為什么或有更好的方法執行此存儲過程?

我得到的錯誤是:
org.springframework.dao.InvalidDataAccessApiUsageException:SQL [CALL GetEvents(?,?,?)]:給定3個參數,但預期為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);

我懷疑這是由於您的變量命名而引起的( end是保留關鍵字)。 請嘗試將end重命名為endTimestart將其重命名為startTime或類似的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM