Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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.sql.SQLException:参数索引超出范围(3>参数数,即2)_Java_Mysql_Web Services - Fatal编程技术网

java.sql.SQLException:参数索引超出范围(3>参数数,即2)

java.sql.SQLException:参数索引超出范围(3>参数数,即2),java,mysql,web-services,Java,Mysql,Web Services,@WebMethodoperationName=SearchOR 我在粗体部分出错。它指向那个位置。我的查询是 在这里: 分隔符$$ 删除过程(如果存在)。`getuser\u info\u或$$ MySQL返回一个空结果集,即零行` 创建过程。获取用户信息或`` 在comp VARCHAR100中, 以VARCHAR100的名义, 出登录VARCHAR100, 发送电子邮件至VARCHAR100 开始 选择sLogin,sEmail 登录、发送电子邮件 来自ad_用户 其中公司=公司或sN

@WebMethodoperationName=SearchOR

我在粗体部分出错。它指向那个位置。我的查询是 在这里:

分隔符$$

删除过程(如果存在)。`getuser\u info\u或$$ MySQL返回一个空结果集,即零行`

创建过程。获取用户信息或``

在comp VARCHAR100中, 以VARCHAR100的名义, 出登录VARCHAR100, 发送电子邮件至VARCHAR100

开始 选择sLogin,sEmail 登录、发送电子邮件 来自ad_用户 其中公司=公司或sName=名称; 结束$$

MySQL返回一个空结果集,即零行


定界符

我认为您的问题在于您的调用与方法定义不匹配。在您的定义中,有两个参数:In comp、In name、OUT Login、OUT email。所以你的电话应该是:

String simpleProc = "{ call getuser_info_or(?, ?, ?, ?)}";
从javadocs:

如果使用,结果参数必须为 注册为输出参数

因此,您需要添加这些注册:

cs.registerOutParameter(3, Types.VARCHAR);
cs.registerOutParameter(4, Types.VARCHAR);
定义的存储过程不会为检索到的数据创建结果集,而是将其放置在out参数中。要获取它们,您需要通过callable语句访问它们:

String login = cs.getString(3);
String email = cs.getString(4);

我相信您的问题是您的调用与方法定义不匹配。在您的定义中,有两个参数:In comp、In name、OUT Login、OUT email。所以你的电话应该是:

String simpleProc = "{ call getuser_info_or(?, ?, ?, ?)}";
从javadocs:

如果使用,结果参数必须为 注册为输出参数

因此,您需要添加这些注册:

cs.registerOutParameter(3, Types.VARCHAR);
cs.registerOutParameter(4, Types.VARCHAR);
定义的存储过程不会为检索到的数据创建结果集,而是将其放置在out参数中。要获取它们,您需要通过callable语句访问它们:

String login = cs.getString(3);
String email = cs.getString(4);

谢谢。谢谢你的回复。。。现在纠正这个错误..你知道吗。。java.sql.SQLException:结果集来自更新。没有数据。在com.mysql.jdbc.SQLError.createSQLExceptionSQLError.java:910在com.mysql.jdbc.ResultSet.nextResultSet.java:6450在WS.TestDB.getSearchAndTestDB.java:85在WS.TestDB.mainTestDB.java:98,这是因为您的过程没有创建结果集。您需要从语句中获取值。我已经更新了我的答案。你好,非常感谢jessup想问更多的疑问。如果可能的话,你可以分享你的邮件id或我喜欢的东西,这样对我会更有帮助。有很多疑问…:-谢谢。谢谢你的回复。。。现在纠正这个错误..你知道吗。。java.sql.SQLException:结果集来自更新。没有数据。在com.mysql.jdbc.SQLError.createSQLExceptionSQLError.java:910在com.mysql.jdbc.ResultSet.nextResultSet.java:6450在WS.TestDB.getSearchAndTestDB.java:85在WS.TestDB.mainTestDB.java:98,这是因为您的过程没有创建结果集。您需要从语句中获取值。我已经更新了我的答案。你好,非常感谢jessup,我想问一些更多的疑问。如果可能的话,你可以分享你的邮箱id或我喜欢的东西,这样对我会更有帮助。有很多疑问…:-