针对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时[重复]
- 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 / 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:
向mysql插入数据时出现错误
原因:mysql表里的字段太短:Varchar(11),把它改大一点就好了
DruidPooledPreparedStatement: Io exception: Connection timed out
java.sql.SQLException: Io exception: Connection timed outat 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.lang.NullPointerException pstmt = conn.prepareStatement(sql)报错
报错情况如下:java.lang.NullPointerExceptionat 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)报错的相关信息,请在本站寻找。
本文标签: