首页 > 解决方案 > 将数据从java插入mysql的问题

问题描述

            String user=new String(tf1.getText());
            String pass=new String(pf1.getPassword());
            String mb=new String(tf2.getText());
            String email=new String(tf3.getText());
            String query="INSERT into user_info (username,password,email_id,mobile number) VALUES('"+user+"','"+pass+"','"+email+"','"+mb+"')";
            try {
                    Connection myConn=DriverManager.getConnection("jdbc:mysql://localhost:3306/javaproject","root","noor1032");
                    System.out.println("databse connected");
                    PreparedStatement myStat=myConn.prepareStatement(query); 
                    System.out.println("statement prepapred");
                    myStat.setString(1, user); 
                    myStat.setString(2, pass); 
                    myStat.setString(3, email); 
                    myStat.setString(4, mb); 
                    myStat.executeUpdate();
                    System.out.println("query executed");
                    myConn.close();
                    JOptionPane.showMessageDialog(null, "saved");
               }    
            catch(Exception f)
                {
                    System.err.println("Got an exception!");
                    System.err.println(f.getMessage());
                }

它显示的异常是“参数索引超出范围(1 > 参数数量,即 0)”。请帮忙!!!

标签: javamysql

解决方案


替换这个:

"INSERT into user_info (username,password,email_id,mobile number) VALUES('"+user+"','"+pass+"','"+email+"','"+mb+"')";

这样:

"INSERT into user_info (username,password,email_id,mobile_number) VALUES(?, ?, ?, ?)";

您稍后会按相应的顺序插入值

myStat.setString(1, user); 
myStat.setString(2, pass); 
myStat.setString(3, email); 
myStat.setString(4, mb); 

推荐阅读