java - 将数据从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)”。请帮忙!!!
解决方案
替换这个:
"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);
推荐阅读
- laravel - Laravel Http Cache ESI 标签问题
- azure - Azure Web App Bot w。QnA 制造商;更改默认答案在控制台中不起作用
- jquery - 将 $(document).ready 与 .change 查询结合起来
- redis - 如何删除redis hashmap键的值
- android - 如何处理从firebase实时数据库中获取的大量数据?
- odoo - 基于odoo 11中的另一个选择选项减少了选择值?
- php - Laravel Spatie 无法限制 UserController
- c++ - 获取两个数组之间的差异
- android - 从 Android Jetpack 恢复到支持库
- javascript - Stripe account.create 返回 customer_id 而不是 account_id