Это все сообщение, которое я получаю:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с значениями '' user ',' age ',' school ',' password ') (' Admin ',' 22 ',' tei ',' admin ')' в строке 1
А это код:
String user = textField.getText().trim();
String age = textField_3.getText().trim();
String school = textField_4.getText().trim();
String password = String.valueOf(passwordField.getPassword());
String password1 = String.valueOf(passwordField_1.getPassword());
if(password.equals(password1)){
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/users","root","1234");
PreparedStatement st = con.prepareStatement("insert into user ('user','age','school','password') values ('"+user+"','"+age+"','"+school+"','"+password+"')");
int rs = st.executeUpdate();
JOptionPane.showMessageDialog(frame, "Data Saved Successfully");
Любые идеи?
1 ответ
Суть подготовленных операторов, помимо прочего, в том, чтобы не объединять ваши запросы самостоятельно.
Вы хотите сделать следующее:
//first you "prepare" your statement (where the '?' acts as a kind of placeholder)
PreparedStatement st = con.prepareStatement("insert into user (user,age,school,password) values (?,?,?,?);");
//now you bind the data to your parameters
st.setString(1, user);
...
//and then you can execute it
st.executeUpdate()
Дополнительные сведения см. В официальном руководстве.
За кулисами происходит несколько вещей, которые делают запрос безопасным, например, экранирование специальных символов, которые в противном случае позволили бы изменить оператор (инъекции Google SQL, если вы хотите узнать больше)
Похожие вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].