Java 如何让用户在注册后看到自己的数据?

Java 如何让用户在注册后看到自己的数据?,java,mysql,jdbc,Java,Mysql,Jdbc,例如,我有一个包含所有用户数据的MySQL表 如何使用户登录后,他看到自己的用户名 我试过这个: con = DriverManager.getConnection(url, user, password); stmt = con.createStatement(); rs = stmt.executeQuery(query); while (rs.next()) { String name = rs.getString(1); System.out.println("use

例如,我有一个包含所有用户数据的MySQL表

如何使用户登录后,他看到自己的用户名

我试过这个:

con = DriverManager.getConnection(url, user, password);
stmt = con.createStatement();
rs = stmt.executeQuery(query);

while (rs.next()) {
  String name = rs.getString(1);
  System.out.println("username : " + name);
}
但它只显示MySQL表中的所有用户名

String query = "select username from users";

为了避免sql注入,建议使用PreparedStatement。有关详细信息,请查看此链接:


为了避免sql注入,建议使用PreparedStatement。查看此链接了解更多详细信息:

您的查询不会筛选表中的行。 使用WHERE子句:


那个?占位符将被正确引用的变量user的值替换。

您的查询不会筛选表中的行。 使用WHERE子句:


那个?占位符将被正确引用的变量user的值替换。

查询字符串的内容是什么?字符串查询=从用户中选择用户名;请您指定,用户为登录提供了什么?您也不应该以明文形式存储密码。存储一个盐哈希,每个用户有一个唯一的盐。查询字符串的内容是什么?字符串查询=从用户中选择用户名;请您指定,用户为登录提供了什么?您也不应该以明文形式存储密码。存储一个salt散列,每个用户有一个唯一的salt。请不要推荐易受SQL注入攻击的解决方案。您可以通过提供一个指向PreparedStatement文档的链接来“软化”这一点,但该链接没有提供SQL注入是什么以及为什么它是危险的清晰描述。不要建议存在安全漏洞的解决方案,今后请提供更安全的解决方案,如forpas提供的解决方案。请不要建议易受SQL注入攻击的解决方案。您可以通过提供一个指向PreparedStatement文档的链接来“软化”这一点,但该链接没有提供SQL注入是什么以及为什么它是危险的清晰描述。不要建议存在安全漏洞的解决方案,今后请提供更安全的解决方案,如forpas提供的解决方案。
String query = "select username from users where username = '"+user+"' ";
String query = "select username from users where username = ?";
stmt.setString(1, user); 
rs = stmt.executeQuery(query);
if (rs.next()) {
    String name = rs.getString(1);
    System.out.println("username : " + name);
} else {
    System.out.println("No user : " + user);
}