我正在尝试实现一个要求用户输入用户名的功能。然后检查输入的用户名是否在数据库中。在开始编写更多函数之前,下面的代码是测试代码。我的问题是,当输入的用户名在数据库中不存在时,代码不会打印出来。但是,当用户名存在时,它会打印出来。例如,ohm34存在于数据库中,因此当程序运行时,它会打印:User Name Does Exist
。 brian23在数据库中不存在,因此它应该打印User Name Does Not Exist
但不会。只需使用java ProgramName
public void letLogin() throws SQLException
{
Scanner stdin;
String sql;
Statement select = connection.createStatement();
String userNames;
stdin = new Scanner(System.in);
System.out.print("Enter your user name: ");
user_name = stdin.next();
sql = "SELECT " + "user_name " + "FROM" + " users8" + " where
user_name = "
+ "'" + user_name + "'";
r = select.executeQuery(sql);
if(r.next())
{
userNameCounter = r.getString("user_name");
if(userNameCounter.equals(user_name))
{
System.out.println("User Name Does Exist");
}
else
{
System.out.println("User Does Not Exist");
}
}
} // method letLogin
答案 0 :(得分:3)
创建查询时,如果用户存在,则将在if(r.next())上输入。但是,如果用户不存在,则不会进入。您必须将else与if(r.next())放在一起。
示例:
sprintf("%.3f",a)
您不需要使用getString()来获取用户,因为您正在对查询中的用户进行测试,因此如果查询返回某些内容(r.next()== true),则该用户存在。