У меня есть проект, который требует подключения Java-Mysql. Я пытался связать две таблицы с одной кнопкой, чтобы дать мне результат в четырех JLabels и JTextArea.
Он показывает, что в моем синтаксисе SQL есть ошибка.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
Class.forName("java.sql.Driver");
Connection con = DriverManager.getConnection("jdbc:Mysql://localhost/nami", "root", "123456");
Statement st = con.createStatement();
String S =
"Select mobile,state,mobile,email,job from signup where email = " + "[email protected]" + ";";
String P = "Select INFORMATION FROM pinfo where email = " + "[email protected]" + ";";
ResultSet rs = st.executeQuery(S);
ResultSet rs2 = st.executeQuery(P);
while (rs.next()) {
String JOB = rs.getString("JOB");
String state = rs.getString("state");
String no = rs.getString("mobile");
String email = rs.getString("email");
jLabel5.setText(JOB);
jLabel16.setText(state);
jLabel31.setText(no);
jLabel7.setText(email);
}
while (rs2.next()) {
String info = rs.getString("information");
jTextArea1.setText(info);
}
con.close();
st.close();
rs.close();
rs2.close();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Error" + e.getMessage());
}
}
В инструкции WHERE
вы должны указывать фактическое значение, окружая его одинарными кавычками '
. Это объясняется в главах MySQL 9.1.1 String Literals. Ваш код должен быть:
String P = "Select INFORMATION FROM pinfo where email = '[email protected]';";
Пожалуйста, узнайте о подготовленных статистиках, если вы планируете использовать JDBC. См. Раздел " Использование подготовленных заявлений".
Вы пропустили одиночные кавычки вокруг идентификатора электронной почты. Попробуйте ниже,
String S= "Select mobile,state,mobile,email,job from signup where email = '[email protected]';";
String P = "Select INFORMATION FROM pinfo where email = '[email protected]';";