【发布时间】:2021-11-03 00:02:03
【问题描述】:
我在尝试为登录系统构建查询时遇到语法错误。它工作过一次,但是当我重新启动我的 XAMPP 服务器时,它开始显示错误。不知道怎么回事
try{
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/login", "root", "");
String user = textField1.getText();
String pass = String.valueOf(passwordField1.getPassword());
try{
String sql = "select * from tbl_login where `name` =?, `password` =?";
PreparedStatement st = con.prepareStatement(sql);
st.setString(1, user);
st.setString(2,pass);
ResultSet rs = st.executeQuery(sql);
if(rs.next()){
welcom w = new welcom();
}
else {
JOptionPane.showMessageDialog(null, "Please check you username and password again");
textField1.setText("");
passwordField1.setText("");
}
}
catch (Exception h){
System.out.println(h.getMessage());
}
}
catch (Exception ex){
System.out.println(ex.getMessage());
}
它显示此错误:
您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在 '?,
password=?' 附近使用的正确语法在第 1 行
【问题讨论】:
-
删除名称和密码周围的“`”字符。
-
在 where 子句中用逗号连接条件,而不用逗号。
-
或许你可以参考这篇文档看看如何正确使用PreparedStatement接口javatpoint.com/PreparedStatement-interface