GVKun编程网logo

java.sql.SQLException:参数索引超出范围(1>参数数量,为0)。在使用PreparedStatement时[重复]

15

针对java.sql.SQLException:参数索引超出范围和1>参数数量,为0。在使用PreparedStatement时[重复]这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展cou

针对java.sql.SQLException:参数索引超出范围1>参数数量,为0。在使用PreparedStatement时[重复]这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.DataException:、DruidPooledPreparedStatement: Io exception: Connection timed out、java sql sqlexception prepared statement needs to be re prepared、java.lang.NullPointerException pstmt = conn.prepareStatement(sql)报错等相关知识,希望可以帮助到你。

本文目录一览:

java.sql.SQLException:参数索引超出范围(1>参数数量,为0)。在使用PreparedStatement时[重复]

java.sql.SQLException:参数索引超出范围(1>参数数量,为0)。在使用PreparedStatement时[重复]

在Java / MariaDb中使用prepareStatement,如以下函数所示

public ArrayList<String> findPath(String roomName) throws SQLException, IOException, InstantiationException, IllegalAccessException, ClassNotFoundException{    ArrayList<String> path = new ArrayList<String>();     connection = getConnection();    String queryPattern = "SELECT `Livello_1`, `Livello_2`, `Livello_3`, `Livello_4` FROM Camera WHERE Camera.Nome = ''?''";    PreparedStatement queryStatement = connection.prepareStatement(queryPattern);    queryStatement.setString(1, roomName);    ResultSet rs = queryStatement.executeQuery();    if(rs.next())    {        for(int i = 0; i < 3; i++)        {            path.add(rs.getString(i));        }    }    return path;}

我收到错误消息:

java.sql.SQLException:参数索引超出范围(1>参数数量,为0)。

错误行号指向行

queryStatement.setString(1, roomName);

答案1

小编典典

如评论中所述,您应该删除?中的引号。

另外,在中rs.getString(i)i应为正。从1开始循环计数。

总结一下:

public ArrayList<String> findPath(String roomName) throws SQLException, IOException, InstantiationException, IllegalAccessException, ClassNotFoundException{    ArrayList<String> path = new ArrayList<String>();     connection = getConnection();    String queryPattern = "SELECT Livello_1, Livello_2, Livello_3, Livello_4 FROM Camera WHERE Camera.Nome = ?";    PreparedStatement queryStatement = connection.prepareStatement(queryPattern);    queryStatement.setString(1, roomName);    ResultSet rs = queryStatement.executeQuery();    if(rs.next())    {        for(int i = 1; i < 4; i++)        {            path.add(rs.getString(i));        }    }    return path;}

could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.DataException:

could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.DataException:

向mysql插入数据时出现错误
原因:mysql表里的字段太短:Varchar(11),把它改大一点就好了

DruidPooledPreparedStatement: Io exception: Connection timed out

DruidPooledPreparedStatement: Io exception: Connection timed out

java.sql.SQLException: Io exception: Connection timed out
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
        at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:815)
        at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1039)
        at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:839)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1132)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
        at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3329)
        at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeQuery(DruidPooledPreparedStatement.java:210)
        at com.ark.appbase.db.DBOper.excuteQuery(DBOper.java:285)
        at com.ark.appbase.db.DBOper.excuteQuery(DBOper.java:256)
        at OPThread.forQueryGroupMessageTable(OPMain.java:298)
        at OPThread.beforeQueryICP(OPMain.java:267)
        at OPThread.run(OPMain.java:230)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
        at java.lang.Thread.run(Thread.java:619)
2013-06-30 23:50:52,843 DEBUG - [DBOper.java:122] sql = create table AAAA(AA VARCHAR2(64), BBB VARCHAR2(64), CCC VARCHAR2(64), DDD VARCHAR2(255), EE VARCHAR2(24), CCVARCHAR2(4), DD VARCHAR2(4000), URL varchar(512))
2013-06-30 23:50:52,843 ERROR - Closed Connection
java.sql.SQLException: Closed Connection
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
        at oracle.jdbc.driver.PhysicalConnection.createStatement(PhysicalConnection.java:722)
        at oracle.jdbc.driver.PhysicalConnection.createStatement(PhysicalConnection.java:698)
        at com.alibaba.druid.pool.DruidPooledConnection.createStatement(DruidPooledConnection.java:610)
        at com.ark.appbase.db.DBOper.excuteUpdate(DBOper.java:125)
        at OPThread.forQueryGroupMessageTable(OPMain.java:306)
        at OPThread.beforeQueryICP(OPMain.java:267)
        at OPThread.run(OPMain.java:230)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)

java sql sqlexception prepared statement needs to be re prepared

java sql sqlexception prepared statement needs to be re prepared

java sql sqlexception prepared statement needs to be re prepared

遇到上边的异常。已经搜遍了,没有找到解决方案。

求助各位

java.lang.NullPointerException pstmt = conn.prepareStatement(sql)报错

java.lang.NullPointerException pstmt = conn.prepareStatement(sql)报错

        报错情况如下:java.lang.NullPointerException
    at com.test.servlet.BookQueryServlet.doPost(BookQueryServlet.java:73)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

    at java.lang.Thread.run(Thread.java:744)

         解决措施:不同于一般Java项目,JavaWeb项目需要把相关驱动放在WebRoot下面的WEB-INF/lib下面

而不能通过右键->Build Path-> Add External JARs



关于java.sql.SQLException:参数索引超出范围1>参数数量,为0。在使用PreparedStatement时[重复]的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.DataException:、DruidPooledPreparedStatement: Io exception: Connection timed out、java sql sqlexception prepared statement needs to be re prepared、java.lang.NullPointerException pstmt = conn.prepareStatement(sql)报错的相关信息,请在本站寻找。

本文标签: