我想创建这个任务,当管理员第一次使用此程序时,他必须注册,但第二次他不必注册,因为他已经注册了,他必须登录..我尝试从数据库中检索用户名和密码,然后比较结果集,如果结果集为空,则让注册类打开,否则打开登录表单......但我没有工作。问题出在哪里???
@Override
public void mouseClicked(MouseEvent me) {
Object click = me.getSource();
if (click == buttonAcoutUS) {
new AboutUs();
dispose();
} else if (click == buttonAdmin) {
ifIDExit();
dispose();
}
}
public void ifIDExit(){
Connection con =myConnection.getConnection();
PreparedStatement ps;
ResultSet rs;
try {
ps=con.prepareStatement("SELECT * FROM `adminstrator` ");
rs=ps.executeQuery();
rs.next();
if (rs.equals("")) {
new newRegister();
}
else {
new AdminLogin();
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
rs.next();
只是将光标从其当前位置向前移动一行(在本例中为第一行,因为最初光标位于第一行之前(。
要从结果集中检索字符串,请使用 ResultSet.getString(int columnIndex)
。因此,不应使用 SELECT *
,而应命名查询中的所有列。
根据您的数据库模型,这可能会起作用(或至少为您提供正确的想法(:
ps = con.prepareStatement("SELECT username, password FROM adminstrator");
rs = ps.executeQuery();
while (rs.next()) { //loop through results
String un = rs.getString(1); //first column is 1
String pw = rs.getString(2);
//... compare strings to something
}
有关结果集的详细信息,请参阅此处。