【问题标题】:java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0)java.sql.SQLException:参数索引超出范围(1>参数个数,即0)
【发布时间】:2011-09-07 05:52:44
【问题描述】:

我正在尝试使用 Java 将图像上传到数据库。
我使用以下代码来完成这项工作。

File file= new File("image.jpg");
FileInputStream fis = new FileInputStream("image.jpg");

String query = "insert into mytable(id,image) values(?, ?)";
PreparedStatement stmt = dbConn.prepareStatement(query);
stmt.setInt(1, sid);
stmt.setBinaryStream(2, fis, (int) file.length());

stmt.executeUpdate(); 

但它会抛出这个错误。

java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0)

请帮我解决这个问题。

【问题讨论】:

  • 您确定异常出现在图像部分吗?还是身份证?
  • 我找不到错误在哪里。据我了解,它说没有任何参数。但正如我在 Java 帮助中看到的那样,这是实现它的方法。
  • 你能显示完整的堆栈跟踪吗?
  • @mgamulin 这是我的一位朋友问我的问题。这只是我现在掌握的信息。将尝试从他那里获取该信息。感谢您的关注.. :) 我无法理解的是,我在网上找到的示例并根据 Java 帮助,这是正确的方法。为什么不识别参数?
  • 能不能在File file = new File("image.jpg")后在线设置断点,看看file.length是什么。你确定你的图片路径有效吗,我不确定。

标签: java mysql


【解决方案1】:

感觉“FileInputStream fis = new FileInputStream(fin);”有错误可能是我,我错了,但什么是'fin'?您应该将该参数设为“文件”。 尝试做

FileInputStream fis = new FileInputStream(file);

这可能有效。

【讨论】:

  • 对不起,这是我的错误。文件名在我的代码中是可变的。我在这里删除了它。但是我忘记全部删除了。我编辑了问题。谢谢提及。
猜你喜欢
  • 2014-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多