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吗 )
不知道怎么写了
求大神帮助 稍微具体点``菜鸟hibernatedaolist
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吗 )
不知道怎么写了
求大神帮助 稍微具体点``菜鸟hibernatedaolist
还是你需要的是把这个dao层内容给封装出来?
想做个登陆并修改数据库的最后一次登陆时间
先验证登陆 然后返回service层调用dao层update方法修改时间 再返回页面
到修改时间这我想法是如果登陆成功就取得这条数据的id 直接根据id修改使劲就ok了
但是不知道怎么取id
request.getSession().setAttribute("userId", userId);我好奇 你的用户名 密码 不唯一?
怎么还要取list?
你这不是已经取出来了吗、
把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 就知道有没有该用户了、
而且 里面的数据全都查出来了 你想要什么就自己用什么咯另外select查询 不需要事务的
不用begin 和commit。
"select p.id from Person p where p.username=:username and p.password=:password"
改为:
from Person p where p.username=:username and p.password=:password
再麻烦下 我想在这个person表中存入当前时间lasttime 有什么方便得方法吗?
我得想法是这样
if (null !=record&&record.size() != 0) {
//更新最后一次登陆时间
Query t = session.
createQuery("update person set lasttime=('now()')"); result = true;
}else{ result = false;}
但是报错org.hibernate.hql.internal.ast.QuerySyntaxException: person is not mapped [update person set lasttime=('now()')]
求指点
hibernateTemplate有saveOrUpdate你把时间setter 到dto里带着id 保存即可
是查询到该用户的数据 拿出来封装到你的dto person里。另外hibernate 并不识别 一些数据常用的函数 。需要你自己注册函数写个方法继承自该数据库的方言 registeredFunction 即可