Py学习  »  DATABASE

从Java中插入数据到MySQL的问题

Jashandeep Singh • 5 年前 • 1125 次点击  
            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)。”请帮助!!!!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/42946
 
1125 次点击  
文章 [ 2 ]  |  最新文章 5 年前
forpas
Reply   •   1 楼
forpas    5 年前

由于您使用的是准备好的语句,请更改为:

String query="INSERT into user_info (username,password,email_id,`mobile number`) VALUES(?,?,?,?)";

稍后将插入参数,并调用 setString() 方法。

编辑 如果列的名称是 mobile number 然后在select语句中写入
`手机号码` [手机号码]

elbraulio
Reply   •   2 楼
elbraulio    5 年前

替换为:

"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);