GVKun编程网logo

java.sql.SQLException:在mysql中结果集结束后(sql结果集已耗尽)

17

对于想了解java.sql.SQLException:在mysql中结果集结束后的读者,本文将是一篇不可错过的文章,我们将详细介绍sql结果集已耗尽,并且为您提供关于AWSRDS:java.sql.S

对于想了解java.sql.SQLException:在mysql中结果集结束后的读者,本文将是一篇不可错过的文章,我们将详细介绍sql结果集已耗尽,并且为您提供关于AWS RDS:java.sql.SQLException:用户、com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL语法错误、DB2 升级产生 java.sql.SQLException:无效的列名、java.sql.SQLException: com.mysql.jdbc.Driver的有价值信息。

本文目录一览:

java.sql.SQLException:在mysql中结果集结束后(sql结果集已耗尽)

java.sql.SQLException:在mysql中结果集结束后(sql结果集已耗尽)

我正在尝试从MYSQL下载图像(.png)文件。有时它工作正常。无法找到确切的问题。它可以在Jboss服务器上正常工作。尝试在Apche上的本地计算机中运行时引发错误。

请帮助我修复错误。这是我的Java代码。

    try {        conection = SQLUtil.createConnection(Constant.DataSourceName);        st = conection.prepareStatement("SELECT image FROM TABLE_NAME WHERE Userid="+ getUserId());        result = st.executeQuery();        result.next();        if(!result.next()){        input = result.getAsciiStream(1);        }        FileOutputStream output = new FileOutputStream(getSignatureImageDestinationPath());        int ch = input.read();        while (ch != -1) {            output.write((char) ch);            ch = input.read();        }        output.close();        input.close();        result.close();        SQLUtil.closeConnection(conection);    } catch (Exception e) {        System.out.println(e+":Error");    } finally {        if (st != null) {            SQLUtil.closeConnection(conection);        }    }

这是堆栈跟踪输出:

java.sql.SQLException: After end of result setat com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)at com.mysql.jdbc.ResultSetImpl.checkRowPos(ResultSetImpl.java:854)at com.mysql.jdbc.ResultSetImpl.getAsciiStream(ResultSetImpl.java:1275)at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.getAsciiStream(DelegatingResultSet.java:253)at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.getAsciiStream(DelegatingResultSet.java:253)at com.ninenexus.model.Signature.getSignatureImage(Signature.java:173)at com.ninenexus.servlets.SaveMySignature.mySignatureDisplay(SaveMySignature.java:69)at com.ninenexus.servlets.SaveMySignature.doPost(SaveMySignature.java:35)at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:380)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)at java.lang.Thread.run(Unknown Source)

答案1

小编典典

您打了result.next()两次电话。我假设您的查询仅返回1行,因为您尝试通过进行匹配Userid。当第二个result.next()被调用时,中没有要返回的行ResultSet。这就是SQLException抛出an的原因。result.next()像这样删除第一个:

result = st.executeQuery();if(!result.next()){    input = result.getAsciiStream(1);    }

AWS RDS:java.sql.SQLException:用户

AWS RDS:java.sql.SQLException:用户

AmazonRDSDataFullAccess策略用于与无服务器RDS数据API进行交互。它不提供执行IAM身份验证的标准数据库连接所需的适当权限。您需要遵循指南here来创建适当的策略。特别是,您需要授予EC2实例配置文件rds-db:connect权限。

,

您可以尝试以下操作:

  1. 尝试重新创建数据库用户并再次授予它权限
  2. 代替内联策略,尝试使用客户托管策略,直到解决连接问题
  3. 内联策略中的资源ARN后面有一个逗号,也应将其删除。
,

我将策略附加到EMR角色,我不得不将其附加到EMR集群的EC2实例配置文件中

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL语法错误

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL语法错误

如果运行主类,则会出现此错误:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insert into customerLogin(companyName,username,password) values('Big Company','D' at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.Util.getInstance(Util.java:386)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4187)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4119)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2570)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2731)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2815)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2458)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2375)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2359)
    at dao.CustomerContactDAO.performUpdate(CustomerContactDAO.java:175)
    at dao.DAOTemplate.executeUpdate(DAOTemplate.java:27)
    at dao.CustomerContactDAO.addCustomerContact(CustomerContactDAO.java:88)
    at test.Test.main(Test.java:29)

这是我的DAO中的代码。我认为错误在于这些代码行,但我不知道它是哪一行:

public boolean addCustomerContact(CustomerContact c) {
    setQuery("insert into customerContact(companyName,lastName,firstName,email,telNum,local,cellNum) values(?,?,?);"
            + "insert into customerLogin(companyName,password) values(?,?)");
    queries.add(getQuery());

    KeyValuePair onePair;

    onePair = new KeyValuePair();
    onePair.setKey(KeyValuePair.STRING);
    onePair.setValue(c.getCompanyName());
    getParameters().add(onePair);

    onePair = new KeyValuePair();
    onePair.setKey(KeyValuePair.STRING);
    onePair.setValue(c.getLastName());
    getParameters().add(onePair);

    onePair = new KeyValuePair();
    onePair.setKey(KeyValuePair.STRING);
    onePair.setValue(c.getFirstName());
    getParameters().add(onePair);

    onePair = new KeyValuePair();
    onePair.setKey(KeyValuePair.STRING);
    onePair.setValue(c.getEmail());
    getParameters().add(onePair);

    onePair = new KeyValuePair();
    onePair.setKey(KeyValuePair.INT);
    onePair.setValue(c.getTelNum() + "");
    getParameters().add(onePair);

    onePair = new KeyValuePair();
    onePair.setKey(KeyValuePair.INT);
    onePair.setValue(c.getLocal() + "");
    getParameters().add(onePair);

    onePair = new KeyValuePair();
    onePair.setKey(KeyValuePair.STRING);
    onePair.setValue(c.getCellNum() + "");
    getParameters().add(onePair);

    onePair = new KeyValuePair();
    onePair.setKey(KeyValuePair.STRING);
    onePair.setValue(c.getCompanyName());
    getParameters().add(onePair);

    onePair = new KeyValuePair();
    onePair.setKey(KeyValuePair.STRING);
    onePair.setValue(c.getUsername());
    getParameters().add(onePair);

    onePair = new KeyValuePair();
    onePair.setKey(KeyValuePair.STRING);
    onePair.setValue(c.getPassword());
    getParameters().add(onePair);
    return executeUpdate();
}

DB2 升级产生 java.sql.SQLException:无效的列名

DB2 升级产生 java.sql.SQLException:无效的列名

如何解决DB2 升级产生 java.sql.SQLException:无效的列名?

我公司的 Java 应用程序 (jdk6) 与 db2jcc.jar 一起工作正常。但是,当我更新它以使用 db2jcc4-4.26.14.jar,它给了我''java.sql.sqlException:无效的列名''错误。有人遇到这个问题吗?谢谢。

2021-02-11 14:22:00,868 错误 [_Worker-9] [ThreadID=12 Server=qrtz1] com.xpedity.lip.connector.EmailNotifier:96 - java.sql.sqlException:无效的列名称 在 com.sun.rowset.CachedRowSetImpl.getColIdxByName(CachedRowSetImpl.java:1631) 在 com.sun.rowset.CachedRowSetImpl.getString(CachedRowSetImpl.java:2473) 在 com.xpedity.lip.connector.LabOrderFormatter.getFrameInfo(LabOrderFormatter.java:928) 在 com.xpedity.lip.connector.LabOrderFormatter.buildOrderFileContents(LabOrderFormatter.java:530) 在 com.xpedity.lip.connector.LabOrderFormatter.generateLabOrderFiles(LabOrderFormatter.java:392) 在 com.xpedity.lip.connector.LabOrderFormatter.execute(LabOrderFormatter.java:256) 在 com.xpedity.lip.connector.EmitterConnector.execute(EmitterConnector.java:48) 在 com.xpedity.lip.scheduler.job.LIOrderEFTP.executeEmitterConnector(LIOrderEFTP.java:150) 在 com.xpedity.lip.scheduler.job.LIOrderEFTP.run(LIOrderEFTP.java:64) 在 com.xpedity.framework.scheduler.job.AbstractJob.execute(AbstractJob.java:34) 在 org.quartz.core.JobRunShell.run(JobRunShell.java:203) 在 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

java.sql.SQLException: com.mysql.jdbc.Driver

java.sql.SQLException: com.mysql.jdbc.Driver

项目本来是 oracle 驱动 + druid 数据源配置,现在要修改为 mysql+druid 数据源配置

启动项目的时候报:java.sql.SQLException: com.mysql.jdbc.Driver

 

报错原因是项目中,没有 mysql 驱动的 jar,缺少 jdbc 对 mysql 的 jar。

 pom.xml 中,加入 mysql 驱动的 jar

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.38</version>
</dependency>

重新编译就可以了

今天的关于java.sql.SQLException:在mysql中结果集结束后sql结果集已耗尽的分享已经结束,谢谢您的关注,如果想了解更多关于AWS RDS:java.sql.SQLException:用户、com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL语法错误、DB2 升级产生 java.sql.SQLException:无效的列名、java.sql.SQLException: com.mysql.jdbc.Driver的相关知识,请在本站进行查询。

本文标签: