关于hibernate的dao层的问题
try{
tx = session.getTransaction();
tx.begin();
Query q = session.
createQuery("select p.id from Person p where p.username=:username and p.password=:password");
q.setString("username",person.getUsername());
q.setString("password", person.getPassword());
List record =q.list();
if (null !=record&&record.size() != 0) {
result = true;
}else{ result = false;}
tx.commit();
这是我dao层的接口 验证登陆的代码 好用
我想在通过验证username password的时候 如果成功 取得这行的id 并存入一个变量(能把id存入我dto(person)中的id吗 )
不知道怎么写了
求大神帮助 稍微具体点``菜鸟
hibernate
dao
list
------解决方案--------------------就是你还缺少action层的代码?
还是你需要的是把这个dao层内容给封装出来?
------解决方案--------------------id放在session里不就完事了。
------解决方案--------------------HttpServletRequest request = ServletActionContext.getRequest();
request.getSession().setAttribute("userId", userId);
我好奇 你的用户名 密码 不唯一?
怎么还要取list?
------解决方案--------------------id自增与否和这个没有关系,你放的是没一条记录的id,又不一样的。或者把id放在hidden里面
------解决方案--------------------
你这不是已经取出来了吗、
把hql 改改 from Person p where p.username=:username and p.password=:password
返回一个person不就可以了吗
Person person = null;
try{
Query q = session.
createQuery("select p.id from Person p where p.username=:username and p.password=:password");
q.setString("username",person.getUsername());
q.setString("password", person.getPassword());
List record =q.list();
if (null != record && !record.isEmpty() ) {
person = (Person)record.get(0);
}
}finally{
session.clear();
session.close();
}
return person;
你根据该方法返回的dto(person) 是否为null 就知道有没有该用户了、
而且 里面的数据全都查出来了 你想要什么就自己用什么咯