首页 > 解决方案 > java.sql.sqlexception 插入时列索引无效

问题描述

我有一个在数据库中运行良好的 sql 语句,并且在数据集和查询对话框中没有显示任何错误,但是当我点击“读取字段”按钮时,它会抛出错误“列索引无效”

我的 sql 代码

--Employees TABLE
create table employee1 (    
ssn number(4)  PRIMARY KEY,
ename VARCHAR2(20),
eposition VARCHAR2(30),
dname VARCHAR2(30) ,
salary number (8) ,
phoneNo number(16)   not null, 
dateOfBirth  date  not null,
grade VARCHAR(1),


CONSTRAINT Dname_FK1 FOREIGN KEY(dname) 
REFERENCES department1(dname) ON DELETE CASCADE,

CONSTRAINT salgrade_FK1 FOREIGN KEY(grade) 
REFERENCES salgrade1(grade) ON DELETE CASCADE
);

我的java代码

 Connection conn=DriverManager.getConnection(url,user,pass);
                    String sql = "insert into employee1(ssn,ename,eposition,dname,salary, phoneNo, dateOfBirth, grade) VALUES (?,'?','?','?',?,?,'?','?')";
                    PreparedStatement stmt=conn.prepareStatement(sql);

                stmt.setString(1, ssn.getText());
                stmt.setString(2, eename.getText());
                stmt.setString(3, eepos.getText());
                stmt.setString(4, dname.getText());
                stmt.setString(5, salary.getText());
                stmt.setString(6, phone.getText());
                stmt.setString(7, dob.getText());
                stmt.setString(8, garde1.getText());
                //stmt.executeUpdate(); 


                    conn.setAutoCommit(false);
                    stmt.executeUpdate();
                    int x = JOptionPane.showConfirmDialog(null, "DO YOU WANT TO SAVE ?", "SELECT YES OR NO",
                            JOptionPane.YES_NO_OPTION);
                    if (x == JOptionPane.YES_OPTION) {
                        conn.commit();
                        JOptionPane.showMessageDialog(null, "RECORD SAVED");
                    } else {
                        conn.rollback();
                        JOptionPane.showMessageDialog(null, "NO RECORDS ARE SAVED");
                    }
                    stmt.close();
                    conn.close();
                } catch (SQLException e1) {
                    e1.printStackTrace();
                }

            }
        });

任何想法 ?

标签: javasqlinsert

解决方案


推荐阅读