我在从列表中的对象获取id值时遇到了问题。我首先在会话中存储用户登录详细信息,并使用这些设置我用来填充列表的查询条件。该列表将只保存一个用户类型的对象。 当我通过调试检查时,该列表正在填充正确的细节,但是当我尝试迭代列表以获取存储在列表中的对象的id值时,我的代码甚至不会输入for循环。 id值是查询获得的用户的ID。 以下是我的代码片段:从包含jsp对象的arrayList中获取对象的int值
HttpSession session1 = request.getSession();
LoggedUser lu = (LoggedUser) session1.getAttribute("logged");
String uname = lu.getUserName();
String pword = lu.getPass();
List<Users> ulist = session.createSQLQuery("Select * From Users WHERE Username = '" + uname + "'" + " AND Password = " + "'" + pword+ "'").list();
int uid = 0; // up until here everything works fine with debugging
for(Users user : ulist)
{
uid = user.getId();
}
谁能帮助?使用Hibernate的标准像这样
请不要通过串联的字符串查询来实现您的登录。这是一个很大的安全漏洞。查看SQL注入。您应该使用命名的查询参数。 – kostja
你是对的,但是为了简单起见,我要求我执行这项任务。一旦用户登录了他的用户名和密码并存储在上面的代码中,我就会调用这些详细信息,以便将当前登录用户的用户发布和用户标识添加到数据库中,以便稍后显示当前的RSS提要登录的用户。 有没有办法如何从上述代码中获取id值? – Maeglin77
除了Hibernate部分外,它对我来说看起来很合适。如果循环从未输入,则列表必须为空。例如,您可以通过打印列表大小来知道。 – kostja