使用hibernate将数据库值存储到数组列表中

时间:2012-12-04 04:58:32

标签: hibernate struts2

我使用struts2和hibernate创建了一个登录应用程序。我从登录表中获取登录详细信息并存储在hibernate dao类的列表中。该列表被传递给login_action类。在动作类中我使用迭代器来获取值,但是我希望将数据库值(不是对象)存储在dao类的数组列表中。如何将值(例如:david,103)存储到dao类

中的数组列表中
public class DAOClass {
    ...
    public List getPwd(LoginModel lm) {
        Session session=null;
        List pwdlist = null;
        session = sessionfactory.openSession(); 
        try {
            Query q=session.createQuery("from LoginModel l where UId='"+lm.getUname()+"'");
            pwdlist=q.list();
        } catch (Exception e){
            e.printStackTrace();
        } 

        return pwdlist;
    }
}

1 个答案:

答案 0 :(得分:0)

您只能选择特定列而不是所有列:

List<Object[]> list = session.createQuery("select column1, column2 from LoginModel l where UId='"+lm.getUname()+"'");

它将返回column1 -> array[0]column2 -> array[1]的对象数组列表。 此查询更快一些,因为它只从数据库中获取特定列。但是你仍然需要迭代集合来获取值。

BTW使用setParameter方法将值绑定到命名查询参数。使用setParameter将阻止SQL注入。

List<Object[]> list = session.createQuery("select column1, column2 from LoginModel l where UId=:uid").setParameter("uid", lm.getUname());