数据库query用法_query方法

数据库query用法_query方法1、以前写代码,总免不了要编写登录部分。在获取user的时候,只可能返回一个user实例,或者为null。以前使用以下方法实现:publicUserget(Stringname,Stringpassword){Sessionsession=HibernateUtil.getSessionFactory().openSession();String…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

1、以前写代码,总免不了要编写登录部分。在获取user的时候,只可能返回一个user实例,或者为null。以前使用以下方法实现:

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 

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187490.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Jenkins(4)docker容器内部修改jenkins容器时间「建议收藏」

    Jenkins(4)docker容器内部修改jenkins容器时间「建议收藏」前言用docker搭建的Jenkins环境时间显示和我们本地时间相差8个小时,需修改容器内部的系统时间查看时间查看系统时间date-R进入docker容器内部,查看容器时间dockere

    2022年7月28日
    8
  • 2023考研高数接力题典1800习题讲解

    2023考研高数接力题典1800习题讲解第一部分(函数、极限、连续)极限求法:①直接代入数值②约去不能代入的零因子③分子分母同除最高次幂④分子分母有理化⑤公式法⑥等价无穷小量的代换⑦洛必达法则⑧换底公式(对数)入门练习填空题讲解(1~4):第一题:我们通过观察,发现是0/0型的,自然想到了洛必达法则。百度百科:洛必达法则是在一定条件下通过分子分母分别求导再求极限来确定未定式值的方法。众所周知,两个无穷小之比或两个无穷大之比的极限可能存在,也可能不存在。因此,求这类极限时往往需要适当的变形,转化成可利用极限运算法则或重要

    2022年8月11日
    7
  • Handler类介绍(中文文档)

    Handler类介绍(中文文档)

    2022年3月3日
    32
  • UNIX的常用命令

    UNIX的常用命令Unix常用命令介绍:  多命令行:“;”多行命令:“\”1、系统关闭reboot、halt/shutdown、poweroff2、passwd命令:修改系统用户密码passwd[username]3、su命令:切换系统用户su[-username]username为空表示root用户4、cat命令:将指定的文件在标准输出到显示器cat [-AbET] [文件名列表]-A      …

    2022年5月31日
    33
  • C语言浮点数表示法 / float表示法(浮点数表示方法)

    C语言浮点数表示法 / float表示法(浮点数表示方法)一直不太清楚C语言中浮点数是怎么表示的,这篇文章能回答我的问题?浮点表示法float共计32位(4字节)由最高到最低位分别是第31、30、29、……、0位31位是符号位,1表示该数为负,0反之30~23位,一共8位是指数位(-128~127)22~0位,一共23位是尾数位后更。。…

    2022年6月28日
    32
  • JS 暂时性死区

    JS 暂时性死区JS暂时性死区ES6暂时性死区引用ES6暂时性死区只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。vartmp=123;if(true){tmp=’abc’;//ReferenceErrorlettmp;}上面代码中,存在全局变量tmp,但是块级作用域内let又声明了一个局部变量tmp,导致后…

    2022年6月30日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号