大家好,又见面了,我是你们的朋友全栈君。
1、以前写代码,总免不了要编写登录部分。在获取user的时候,只可能返回一个user实例,或者为null。以前使用以下方法实现:
代码语言:javascript复制public User get(String name,String password){
Session session=HibernateUtil.getSessionFactory().openSession();
String hql="from User u where u.name = ? and u.password=?" ;
List list=session.createQuery(hql).setString(0 , name).setString(1,password).list();
if (list.size()== 1 ){
return (User)list.get( 0 );
}else {
return null ;
}
}
2、hibernate的参考手册中,query接口提供了一个更好的方法 uniqueResult () 用来获取实例,如果查询结果有多个值则抛出错误;结果有且只有一个值,返回一个object; 如果没值,返回null
代码语言:javascript复制public User get(String name,String password){
Session session=HibernateUtil.getSessionFactory().openSession();
String hql="from User u where u.name = ? and u.password=?";
return (User)session.createQuery(hql).setString(0,name).setString(1,password).uniqueResult();
}
如果查询结果有多个值则抛出NonUniqueResultException的错误; 如果查询结果有且只有一个值,返回一个object; 如果没值,返回null
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。