Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中执行MySQL存储过程_Java_Mysql_Stored Procedures - Fatal编程技术网

在Java中执行MySQL存储过程

在Java中执行MySQL存储过程,java,mysql,stored-procedures,Java,Mysql,Stored Procedures,我试图使用jdbcTemplate执行一个存储过程,但我一直收到一个错误,说GetEvents需要0个参数。有人能解释一下为什么或者有更好的方法来执行这个存储过程吗 我得到的错误是: org.springframework.dao.InvalidDataAccessApiUsageException:SQL[调用GetEvents(?,?)]:给定了3个参数,但应为0 程序 mysql> CREATE PROCEDURE GetEvents(IN search_table VARCHAR(

我试图使用jdbcTemplate执行一个存储过程,但我一直收到一个错误,说GetEvents需要0个参数。有人能解释一下为什么或者有更好的方法来执行这个存储过程吗

我得到的错误是:
org.springframework.dao.InvalidDataAccessApiUsageException:SQL[调用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)
mysql>创建过程GetEvents(在搜索表VARCHAR(255)、开始时间戳、结束时间戳中)
->开始
->选择计数(*)
->从搜索表
->其中时间>=开始和时间结束//
查询正常,0行受影响(0.02秒)
爪哇

public int getEnterExitsAll(日期时间开始,日期时间结束){
Map params=新的HashMap();
参数put(“搜索表格”,表格ENEX);
参数put(“start”,start.toString());
参数put(“end”,end.toString());
返回模板.queryForInt(“调用GetEvents(?,?)”,参数);

我怀疑,这是因为变量命名(
end
是保留关键字)。请尝试将
end
重命名为
endTime
并将
start
重命名为
startTime
或类似的名称。

我已更正,但仍然看到相同的错误。您是否曾设法通过调用找到问题?
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);