【发布时间】:2019-10-13 11:14:33
【问题描述】:
我在一个具有用户登录、管理员登录等的考试系统上工作。 当我检查输入的用户名(例如) 如果它已经在数据库中,它不会返回 并再次创建它!
try{
// Class.forName("com.mysql.jdbc.Driver");
Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/big_project_3","root","");
//imporrrrrrrrrrrrrrrrrrrrrrrtant
String selectquery = "select count(*)from uesrs where username='" + username + "'and password='" + password + "'";
Statement stat=con.createStatement();
System.out.println(selectquery);
ResultSet rs=stat.executeQuery(selectquery);
System.out.println(rs.next());
if(rs.next()==true){
infoMessage("Already registered ","Welcom");
}
else{
String insertQuery = "insert into uesrs values(null,'" + username_new_student.getText() + "','" + password_new_student.getText() + "','" + First_name_new_student.getText()+"')";
stat.executeUpdate(insertQuery);
infoMessage("info is inserted ","Alert!!!!!");
dispose();
user_login ul=new user_login();
ul.setLocationRelativeTo(null);
ul.setVisible(true);
}
}
catch (Exception ex) {
System.out.println(ex);
}
【问题讨论】:
-
看起来您的 SQL 中可能有错字。 from uesrs 也许应该说“来自用户”
-
System.out.println(rs.next());- 你认为这是在做什么? -
我正在与他一起使用本教程youtube.com/…,它工作得很好!!!
-
但在 rs.next 上调用 println 会推动事情向前发展。尝试将其注释掉。
-
尝试选择 * 不选择计数 (*)。选择计数将始终返回包含 1 条记录的集合,即使没有匹配项(返回 1 条记录集,编号为 0)