java - 在 MySQL 中保存 3gp 文件时出现 ArrayIndexOutOfBoundsException

标签 java mysql blob

我的代码是:

psmnt = conn.prepareStatement("INSERT INTO upload_data(user_id,photo,audio) " + "values(?,?)");
psmnt.setLong(1, userId);   
fis = new FileInputStream(photoFile);
psmnt.setBinaryStream(2, (InputStream) fis, (int) (photoFile.length()));
fisAudio =  new FileInputStream(audioFile);
psmnt.setBinaryStream(3, (InputStream) fisAudio, (int) (audioFile.length()));
int s = psmnt.executeUpdate();

MySQL数据库中的音频类型为blob。

异常(exception)是:

java.lang.ArrayIndexOutOfBoundsException: 2
    at com.mysql.jdbc.PreparedStatement.setBinaryStream(PreparedStatement.java:2089)
    at com.test.dao.TestDao.saveTestDetails1(TestDAo.java:154)
    at com.test.servlet.UploadImage.doPost(UploadImage.java:131)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)

如何解决?

最佳答案

psmnt.setBinaryStream(3,

Jennifer,你正在尝试设置第三个参数,但你的插入中只有两个:

psmnt = conn.prepareStatement("INSERT INTO upload_data(user_id,photo,audio) "
                        + "values(?,?)");

关于java - 在 MySQL 中保存 3gp 文件时出现 ArrayIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5880878/

相关文章:

android - 根据我的需要选择正确的数据库

php - 我可以使用 phpmyadmin 的 import.php 文件吗

c# - Azure Blob 是否过滤 Blob 名称的 "prefix"?

java - 将 MultipartFile 作为 Blob 发送到 mysql 数据库

azure - TFS - Azure 文件复制任务

java - 错误处理程序 Servlet : how to get exception cause

java - 以最高安全设置运行java

java - 向 JFrame 添加多个按钮,文本+颜色未显示

java - 可以在方法内部请求输入吗?

php - 每 5 秒将 TXT 文件导入 MySQL 表