java.sql.SQLException: 无效的列索引
无效的列索引
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:207)
at oracle.jdbc.driver.OraclePreparedStatement.setStringInternal(OraclePreparedStatement.java:5328)
at oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.java:5320)
at untitled5.addreader1.validID(addreader1.java:128)
at untitled5.addreader1.jButton1_actionPerformed(addreader1.java:97)
at untitled5.addreader1_jButton1_actionAdapter.actionPerformed(addreader1.java:175)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)代码:String driverName = "oracle.jdbc.OracleDriver";
      Driver driver = (Driver) Class.forName(driverName).newInstance();
      //连接数据库
      Connection con = DriverManager.getConnection(
          "jdbc:oracle:thin:@LONG:1521:orcl", "sysman", "tongfang");
      PreparedStatement pstmt = con.prepareStatement(
          " insert into reader values(?)");
      pstmt.setString(1, str1);
      pstmt.setString(2,str2);
      pstmt.setString(3,str3);
      pstmt.setString(4,str4);
      ResultSet res = pstmt.executeQuery();
在网上搜索说表的列和java对应问题,大小写问题等等都没能解决,取消索引,单个插入就出现表或试图不存在,可用sqlplus又找得到数据表,都是用sysman的账户,这是什么原因呢,弄个一个下午了,请各位大牛帮忙,期末大作业,急急急!

解决方案 »

  1.   

    要存在四个变量
    PreparedStatement pstmt = con.prepareStatement(
       " insert into reader(col1,col2,col2,col4) values(?,?,?,?)");
     
      

  2.   

    总结:最后为实现用java连接oracle,出现表或视图不存在,可用sqlplus查找又可以找到表,但解决了动态插入语句的功能,谢谢“jdsnhan”的帮忙。由于时间紧迫,改用java连接mysql实现。若哪位大虾也遇到这样的问题,解决了,望不吝赐教!