Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Hibernate之Query接口的uniqueResult()方法[通俗易懂]

Hibernate之Query接口的uniqueResult()方法[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-09-07 03:55:47
发布于 2022-09-07 03:55:47
6000
举报

大家好,又见面了,我是你们的朋友全栈君。

如果查询返回多个值用list()方法

  1. public void testQuery(){
  2. Configuration config = new Configuration().configure();
  3. SessionFactory factory = config.buildSessionFactory(); //创建SessionFactory
  4. Session session = factory.openSession(); //创建Session
  5. session.beginTransaction(); //开始事务
  6. Query query = session.createQuery(“from Student”);
  7. List list = query.list(); // 用list方法返回多个值
  8. //List list = session.createQuery(“from Student”).list();
  9. for(int i=0;i<list.size();i++){
  10. Student student = (Student)list.get(i);
  11. System.out.print(student.getId()+” “);
  12. System.out.print(student.getName()+” “);
  13. System.out.print(student.getSex()+” “);
  14. System.out.print(student.getBirthday());
  15. System.out.println();
  16. }
  17. session.getTransaction().commit(); //提交事务
  18. session.close(); //关闭Session
  19. }

当确定返回的实例只有一个或者null时 用uniqueResult()方法

  1. public void testGet(){
  2. Configuration config = new Configuration().configure();
  3. SessionFactory factory = config.buildSessionFactory();
  4. Session session = factory.openSession();
  5. session.beginTransaction();
  6. Query query = session.createQuery(“from Student s where s.id=?”);
  7. query.setString(0, “2”);
  8. Student student = (Student)query.uniqueResult(); //当确定返回的实例只有一个或者null时 用uniqueResult()方法
  9. //Student student = (Student)session.createQuery(“from Student s where s.id=?”).setString(0,”5″).uniqueResult();
  10. System.out.println(student.getName());
  11. System.out.println(student.getBirthday());
  12. session.getTransaction().commit();
  13. session.close();
  14. }

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Hibernate】uniqueResult方法「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。 数据库中根据你的查询条件只会返回唯一结果,就可以用uniqueResult这个方法!否则就用list();其返回类型为Object uniqueRes
全栈程序员站长
2022/09/30
4380
Hibernate学习---用Session实现CURD
我们使用Hibernate的目的是什么?对数据库进行操作,所有接下来我们就用Hibernate来进行CURD。 前边我们已经分析过了Configuration,SessionFactory和Session,接下来我们就利用Session对象来进行增删改查: 在进行增删改查之前我们先对SessionFactory和Session进行一些简单的封装: public class hbnUtil { private static SessionFactory factory; public
MindMrWang
2018/04/16
8380
Java面试之JDBC & Hibernate
1、数据库,比如100 用户同时来访,要采取什么技术解决?【基础】 答:可采用连接池。 111、什么是ORM?【基础】 答:对象关系映射(Object—Relational Mapping,简称ORM)是一种为了解决面向对象与面向关系数据库存在的互不匹配的现象的技术;简单的说,ORM 是通过使用描述对象和数据库之间映射的元数据,将java 程序中的对象自动持久化到关系数据库中;本质上就是将数据从一种形式转换到另外一种形式。 2、Hibernate 有哪5 个核心接口?【基础】 答: Configuration 接口:配置Hibernate,根据其启动hibernate,创建SessionFactory 对象; SessionFactory 接口:初始化Hibernate,充当数据存储源的代理,创建session 对象, sessionFactory 是线程安全的,意味着它的同一个实例可以被应用的多个线程共享,是重量级、二级缓存; Session 接口:负责保存、更新、删除、加载和查询对象,是线程不安全的,避免多个线程共享同一个session,是轻量级、一级缓存; Transaction 接口:管理事务;Query 和Criteria 接口:执行数据库的查询。 3、关于hibernate: 【基础】 1)在hibernate 中,在配置文件呈标题一对多,多对多的标签是什么;2)Hibernate 的二级缓存是什么;3)Hibernate 是如何处理事务的; 答:1)一对多的标签为 ;多对多的标签为; 2)sessionFactory 的缓存为hibernate 的二级缓存; 3)Hibernate 的事务实际上是底层的JDBC Transaction 的封装或者是JTA Transaction 的封装;默认情况下使用JDBCTransaction。
全栈程序员站长
2022/08/04
3430
探索Hibernate的奥秘:简解其使用与实现过程
在现代的Java开发中,数据持久化是一个至关重要的环节。而在众多持久化框架中,Hibernate以其强大的功能和灵活性,成为了开发者们的首选工具。本文将详细介绍Hibernate的原理、实现过程以及其使用方法,希望能为广大开发者提供一些有价值的参考。
繁依Fanyi
2024/06/23
3630
hibernate笔记(一)
原始的jdbc操作, Connection/Statement/ResultSet
HUC思梦
2020/09/03
8390
Hibernate的四种查询方式(主键查询,HQL查询,Criteria查询,本地sql查询)和修改和添加
根据文章内容总结摘要。
别先生
2018/01/02
5.4K0
Hibernate的四种查询方式(主键查询,HQL查询,Criteria查询,本地sql查询)和修改和添加
SSH框架之旅-hibernate(4)
QBC 查询是通过 Restrictions 类的静态方法来实现的,具体的方法如下表所示。
Wizey
2018/08/30
1.7K0
SSH框架之旅-hibernate(4)
hibernate笔记(四)
3) HQL查询, Hibernate Query language hibernate 提供的面向对象的查询语言。
HUC思梦
2020/09/03
7040
day32_Hibernate学习笔记_04
  缓存(Cache):是计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写硬盘(永久性数据存储源)的频率,从而提高应用的运行性能。缓存中的数据是数据存储源中数据的拷贝。缓存的物理介质通常是内存。   缓存:程序 <-- (内存) --> 硬盘
黑泽君
2018/10/11
9940
day32_Hibernate学习笔记_04
Hibernate查询技术之HQL语句
1、session中的get( )和load( )方法来查询对象。但其查询功能有限。
大黄大黄大黄
2018/09/14
1.6K0
Hibernate_day01总结
第1章 Hibernate_day01总结 今日内容 Hibernate框架的概述 Hibernate的快速入门 Hibernate核心API的介绍 Hibernate的持久化类 主键的生成策略 1.
Java帮帮
2018/03/19
1.3K0
Hibernate_day01总结
day31_Hibernate学习笔记_03
在数据库表中如何表达多对多关系:   使用中间表,分别引用两方的ID。 在对象中如何表达多对多关系:   两方都使用集合表达。 在配置文件中如何表达一对多关系:
黑泽君
2018/10/11
2.5K0
day31_Hibernate学习笔记_03
使用hibernate基本步骤
Pom.xml 中导入需要使用的jar包(可以直接百度maven repository查找你需要的jar包)
微醺
2019/01/17
6770
走进JavaWeb技术世界13:Hibernate入门经典与注解式开发
本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看
Java技术江湖
2019/10/24
1.9K0
hibernate笔记加强版「建议收藏」
hibernate事实上就是ormapping框架,此框架的作用就是简单话数据库的操作。
全栈程序员站长
2022/07/10
1.1K0
day30_Hibernate学习笔记_02
对象状态 瞬时态|临时态:Transient     1、没有与Hibernate产生关联(没有与Session有关联)。     2、与数据库中的记录没有产生关联,即对象没有ID(有关联:就是与数据库中的ID有对应)。 持久态:Persistent     1、与Hibernate有关联(与session有关联)。     2、对象有ID。 游离态|脱管态:Detached     1、没有与Hibernate产生关联。     2、对象有ID。 三种状态转换如下图所示:
黑泽君
2018/10/11
1.1K0
day30_Hibernate学习笔记_02
Hibernate文件配置
映射需要通过XML的配置文件来完成,这个配置文件尽量统一(xxx.hbm.xml) Hibernate核心的配置:必须的配置、可选的配置、映射文件的引入
用户3112896
2019/09/26
4340
Hibernate文件配置
【框架】[Hibernate]构架知识点详解入门与测试实例
Hibernate是一个开放源码的、非常优秀、成熟的O/R Mapping框架。它提供了强大、高性能的Java对象和关系数据的持久化和查询功能。
谙忆
2021/01/21
4510
【框架】[Hibernate]构架知识点详解入门与测试实例
hql查询语句用法详解_sql add语句
HQL的语法比较简单,与普通SQL的区别之处是针对对象的不同,在查询语句中将sql中的表名替换成了sql中的持久化类名,因为hibernate机制是基于对象进行查询的。
全栈程序员站长
2022/11/11
1K0
Hibernate入门这一篇就够了
前言 本博文主要讲解介绍Hibernate框架,ORM的概念和Hibernate入门,相信你们看了就会使用Hibernate了! 什么是Hibernate框架? Hibernate是一种ORM框架,全称为 Object_Relative DateBase-Mapping,在Java对象与关系数据库之间建立某种映射,以实现直接存取Java对象! 为什么要使用Hibernate? 既然Hibernate是关于Java对象和关系数据库之间的联系的话,也就是我们MVC中的数据持久层->在编写程序中的DAO层… 首先
Java3y
2018/03/15
1.7K0
Hibernate入门这一篇就够了
相关推荐
【Hibernate】uniqueResult方法「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档