gpt4 book ai didi

java - SQLException:索引::1 处缺少 IN 或 OUT 参数

转载 作者:行者123 更新时间:2023-12-02 05:47:14 25 4
gpt4 key购买 nike

我已经制作了某些 jtextfield、jRadioButtons 和一些文本区域。我希望它们插入到这些 SQL 数据库中输入的数据中。我编写了以下代码:

Connection conn = null;
//Statement stm = null;
PreparedStatement pst = null;
ResultSet rs = null;
try{

Class.forName("oracle.jdbc.OracleDriver");
System.out.println("Driver Loaded.");
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "hr", "hr");
System.out.println("Driver Connected.");
pst=conn.prepareStatement("insert into directorsdb (DIRECTOR_NAME, DOB, DIN, PAN, UIN, BIRTH_PLACE, PASSPORT, DRIVING_LIC, NATIONALITY, OCCUPATION, OCCUPATION_COMPANY, DESIGNATION, QUALIFICATION, ADDRESS_OFF, ADDRESS_RESI, CONTACT_HOME, CONTACT_WORK, CONTACT_MOBILE, EMAIL_PERSONAL, EMAIL_WORK, EMAIL_OTHER, SECRETARY_NAME, SECRETARY_CONTACT, SECRETARY_EMAIL, DSC, DSC_EXPIRY, FATHER_NAME, MOTHER_NAME, APPOINTMENT_DATE, POSITION_BOARD, CESSATION_DATE, CESSATION_REASON, PROMOTER, INDEPENDENT_DIRECTOR, ABOUT)"
+ "values("+jFormattedTextField1.getText()+"','"+jDateChooser1.getDate()+"','"+DIN.getText()+"','"+PAN.getText()+"','"+UIN.getText()+"','"+jFormattedTextField4.getText()+"','"+passportno.getText()+"','"+dlicense.getText()+"','"+jFormattedTextField5.getText()+"','"+jFormattedTextField6.getText()+"','"+jFormattedTextField7.getText()+"','"+jFormattedTextField8.getText()+"','"+jFormattedTextField9.getText()+"','"+officeadd.getText()+"','"+residentialadd.getText()+"','"+jFormattedTextField12.getText()+"','"+jFormattedTextField13.getText()+"','"+jFormattedTextField14.getText()+"','"+jFormattedTextField15.getText()+"','"+jFormattedTextField16.getText()+"','"+jFormattedTextField17.getText()+"','"+jFormattedTextField18.getText()+"','"+jFormattedTextField19.getText()+"','"+jFormattedTextField20.getText()+"','"+buttonGroup1.getSelection().getActionCommand()+"','"+jDateChooser2.getDate()+"','"+jFormattedTextField22.getText()+"','"+jFormattedTextField23.getText()+"','"+jDateChooser3.getDate()+"','"+jFormattedTextField25.getText()+"','"+jDateChooser4.getDate()+"','"+jTextArea2.getText()+"','"+buttonGroup2.getSelection().getActionCommand()+"','"+buttonGroup3.getSelection().getActionCommand()+"','"+jTextArea1.getText()+"',')");

pst.execute();

if(pst.execute()==true){
JOptionPane.showMessageDialog( null, "Saved Successfully!!");
}else{
JOptionPane.showMessageDialog( null, "Saved Successfully!!");
}

}catch(SQLException e){
System.err.println(e.fillInStackTrace());
}
catch(ClassNotFoundException ex){
System.err.println(ex);
}

我得到的异常(exception)是:

SQLException: Missing IN or OUT parameter at index:: 1

帮助我纠正同样的问题。

最佳答案

您提供的值比 SQL 中的列数还要多。

使用PrepareStatement时,请在SQL中使用占位符,以避免SQL注入(inject)。

String selectSQL = "SELECT USER_ID, USERNAME FROM DBUSER WHERE USER_ID = ? and NAME = ?";
PreparedStatement preparedStatement = dbConnection.prepareStatement(selectSQL);
preparedStatement.setInt(1, 1001);
preparedStatement.setString(2, "test");
ResultSet rs = preparedStatement.executeQuery(selectSQL);

更新时:

String updateTableSQL = "UPDATE DBUSER SET USERNAME = ? WHERE USER_ID = ?";
PreparedStatement preparedStatement = dbConnection.prepareStatement(updateTableSQL);
preparedStatement.setString(1, "value");
preparedStatement.setInt(2, 1001);

preparedStatement .executeUpdate();

关于java - SQLException:索引::1 处缺少 IN 或 OUT 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23945427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com