从包含jsp中的对象的arrayList获取对象的int值

时间:2014-01-15 10:29:16

标签: hibernate jsp session arraylist foreach

我遇到从列表中的对象获取id值的问题。我首先在会话中存储用户登录详细信息,并使用这些来设置用于填充列表的查询的条件。该列表仅包含一个user类型的对象。 当我通过调试检查时,列表正在填充正确的详细信息,但是当我尝试迭代列表以获取存储在列表中的对象的id值时,我的代码甚至不进入for循环。 id值是查询获取的用户的id。 以下是我的代码片段:

        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();
         }

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

开始使用像这样的休眠标准,

List<Users> ulist = (List<Users>) session.createCriteria(Users.class)
                     .add(Restrictions.eq("username", uname))
                    .add(Restrictions.eq("password", pword)).list();

您的Users类中id的数据类型是什么?如果是int,

if(null != ulist && ulist.size() > 0){
     int uid = 0; 

     for(Users user : ulist)
     {
         uid = user.getId();
     }
}

<强>更新

你需要检查null。否则,您可能会遇到很多nullpointer异常。

LoggedUser lu = (LoggedUser) session1.getAttribute("logged");
String uname = "";
String pword = "";
if(null != session1.getAttribute("logged")){
    uname = lu.getUserName();
    pword = lu.getPass();
}

希望这有帮助。