Hibernate之检索方式

AD/Protel老手才知道的PCB过孔查看技巧:3分钟分清通孔、盲孔和埋孔 本文为PCB设计工程师提供了在Altium Designer/Protel中快速鉴别通孔、盲孔和埋孔的实用技巧。通过层叠管理器、高级筛选工具和实战五步法,帮助用户在3分钟内精准识别过孔类型,提升设计效率和电路性能。特别适合处理高密度HDI板卡中的复杂过孔布局。 阅读详情

学习了一段hibernate,综合一下网上查到的资料,下面是总理一下hibernate对数据库的操作方式。

检索方式:

1、导航对象图检索方式。通过已经加载的对象,调用.iterator()方法可以得到order对象

如果是首次执行此方法,Hib会从数据库加载关联的order对象,否则就从缓存中得到

2、OID检索方式。通过session的get,load方法知道了OID的情况下可以使用

3、HQL检索方式。使用面向对象的HQL查询语句session的find方法利用HQL来查询

4、QBC检索方式。利用QBC API来检索它是封装了基于字符串的查询语句

5、本地的SQL检索方式。使用本地数据库的SQL查询语句Hib会负责把检索到的JDBC结果集映射为持久化对象图

 

五种检索方式的使用场合和特点:

HQL : 是面向对象的查询语言,同SQL有些相似是Hib中最常用的方式。

             查询设定各种查询条件。

             支持投影查询,检索出对象的部分属性。

             支持分页查询,允许使用having和group by

             提供内制的聚集函数,sum(),min(),max()

             能调用用户的自定义SQL

             支持子查询,嵌入式查询

             支持动态绑定参数

             建议使用Query接口替换session的find方法。

             示例:

                    Query Q = session.createQuery("from customer as c where c.name = :customerName" + "and c.age = :customerAge");

               query.setString ("customerName" , "tom");

               query.setInteger("customerAge" , "21");

               list result = query.list();

 

               HQL语句的参数绑定Query接口提供了绑定各种Hib映射类型的方法:

                     setBinary()

                     setString()

                     setBoolean()

                     setByte()

                     setCalendar()

                     setCharacter()

                     setDate()

                     setDouble()

                     setText()

                     setTime()

                     setTimestamp()

                     setEntity() //把参数与一个持久化类的事例绑定

                     示例: lsit result = session.createQuery("from order o where o.customer = :customer").setEntity("customer" , customer).list() ;

                    setParameter()//绑定任意类型的参数

                    setProperties()//把命名参数与一个对象的属性值绑定

                    示例:Query query = session.createQuery("from customer c where c.name = :name " + "and c.age =:age" );

                               Query.setProperties(customer);

 

QBC :  QBCAPI提供了另一种方式,主要是Criteria接口、Criterion接口和Expression类

            示例:查询customer对应表中name以‘t’开头,age等于21的值

            Criteria criteria = session.createCriteria(customer.class);

         Criterion criterion1 = Expression.like("name","t%");

         Criterion criterion2 = Expression.eq("age",new Integer(21));

         Critera = criteria.add(criterion1) ;

         Critera = criteria.add(criterion2) ;

         list result = criteria.list();

         或是: list result = session.createCriteria(Customer.class).add(Expression.eq("this.name","tom")).list();//写在了一起

 

NHibernate.Criterion方法解释

HQL运算符

QBC运算符

含义

=

Restrictions.eq()

等于equal

<>

Restrictions.ne()

不等于not equal

>

Restrictions.gt()

大于greater than

>=

Restrictions.ge()

大于等于greater than or equal

<

Restrictions.lt()

小于less than

<=

Restrictions.le()

小于等于less than or equal

is null

Restrictions.isnull()

等于空值

is not null

Restrictions.isNotNull()

非空值

like

Restrictions.like()

字符串模式匹配

and

Restrictions.and()

逻辑与

and

Restrictions.conjunction()

逻辑与

or

Restrictions.or()

逻辑或

or

Restrictions.disjunction()

逻辑或

not

Restrictions.not()

逻辑非

in(列表)

Restrictions.in()

等于列表中的某一个值

not in(列表)

Restrictions.not(Restrictions.in())

不等于列表中任意一个值

between x and y

Restrictions.between()

闭区间xy中的任意值

not between x and y

Restrictions.not(Restrictions..between())

小于值X或者大于值y

 

 

OpenClaw赚钱实录:从“养龙虾“到可持续变现的实践指南——OpenClaw的赚钱底层逻辑与“记忆”革命 AI 的商业价值不在于替代思考,而在于沉淀关系。当 Agent 记住你的偏好、你的历史、你的目标,它就不再是冷冰冰的软件,而是成为数字化的关系资产。这种资产的稀缺性不在于技术复杂度,而在于时间无法被压缩——你无法用更好的算法替代 3 个月的协作记忆。在这场“记忆革命”中,护城河不是模型参数,而是用户与 AI 共同书写的历史。OpenClaw 用一套优雅的文件系统架构,将这种历史转化为可积累、可复用、可变现的数字资产。从“计算即服务”(CaaS)到“记忆即服务”(MaaS)。 阅读详情

相关推荐

VS2022如何兼容老项目?.NET Framework 4.0/4.5安装避坑指南

本文提供了在Visual Studio 2022中兼容和维护.NET Framework 4.0/4.5等老旧项目的完整解决方案。针对VS2022无法直接识别旧框架的核心问题,文章详细剖析了原因,并重点推荐通过官方NuGet包安全获取引用程序集的方法,给出了从下载、解压到部署至标准目录的详细步骤。同时,文章还深入探讨了项目文件格式过旧、NuGet包还原失败等进阶问题的排查与解决策略,旨在帮助开发者高效、稳定地在现代开发环境中维护历史代码库。

weixin_27734811的博客 515

idea整合SSH框架

1、Spring引入 点击左侧的Spring Additional Libraries and Framework里面选择Spring,Web Application, Struts2, Application Server(选择tomcat就可以了),Hibernate; 点击Next,输入项目名称;完成后等待IDEA下载依赖包   Next 测试spring是否可用 先创建T...

点滴 7595

RocketMQ5.3.0-control-多 Master 多 Salve-异步复制-集群搭建

RocketMQ5.3.0-control-多 Master 多 Salve-异步复制-集群搭建(详细文档)

m0_52369979的博客 731

hibernate检索方式

默认情况下hibernate查询返回的是一个个的Object[],如果查询部分字段的话,需要一个一个的去遍历赋值。HQL检索方式和本地检索方式可以使用Transformers的aliasToBean方法来返回一个结果转换器。HQL检索方式:使用面向对象的HQL(Hibernate Query Language)查询语言Query。setParameter() 绑定任意类型的参数,该方法的第三个参数显示指定Hibernate映射类型。OID检索方式 :使用OID来获取对象get()和load()方法。

Lxn2zh的博客 466

SAP-ABAP:SAP HANA性能神器FDA:是极速查询的引擎,也是CPU过载的元凶

在SAP S/4HANA的世界里,有一个被ABAP开发者们既爱又怕的特性——Fast Data Access(FDA),它能将性能提升百倍,也能让CPU瞬间飙升。本文将带您全面解剖这一核心机制。

baidu_35680696的博客 849

【数据集】全球湿度数据集总结

【数据集】全球湿度数据集总结

WW、forever的博客 1661

Hibernate的检索方式详解

[b] Hibernate提供以下几种检索对象的方式。[/b] [color=red] l 导航对象图检索方式。(根据已经加载的对象,导航到其他对象。) 2 OID检索方式。(按照对象的OID来检索对象。) 3 HQL检索方式。(使用面向对象的HQL查询语言。) 4 QBC检索方式。(使用QBC(Qurey By...

学会坚强 201

LVGL iPhone Duo 开合过渡

环境:LVGL 9.x(需要软件模糊),窗口建议 1280×800。界面文案英文(默认 Montserrat 无 CJK)。

摸鱼专家 151

Hibernate检索方式

我们在项目应用中对数据进行最多的操作就是查询,数据的查询在所有ORM框架中也占有极其重要的地位。那么,如何利用Hibernate查询数据呢?Hibernate为我们提供了多种数据查询的方式,又称为Hibernate的检索方式,主要有以下五种,我们来系统地学习一下。        1.导航对象图检索方式。(根据已经加载的对象,导航到其他对象。)        2.OID检索方式。(按照对象的

lenotang的专栏 5470

微信小程序 - error_msg:net::ERR_CONNECTION_RESET“(“errno“:600001,“errMsg“:“uploadFile:fail errcode:-101)

"errno":600001,"errMsg":"uploadFile:fail errcode:-101 cronet_error_code:-101 error_msg:net::ERR_CONNECTION_RESET"微信小程序,微信小程序wx.uploadFile报错,uniapp微信小程序uni.uploadFile上传文件报错,微信小程序调用wx.uploadFile返回错误ERR_CONNECTION_RESET,如何解决这个问题,上传图片出现报错,小程序上传视频报错,上传文件出现报错,如何

🏆 前端领域优质创作者 5415

初探802.11协议(6)——Wi-Fi 6新特性简介

Wi-Fi 6新机制(特性)介绍

FanFF的博客 1522

Hibernate检索对象的方式

Hibernate提供的检索对象的方式有: •导航对象图检索方式 –根据已经加载的对象,导航到其他对象。例如,对于已经加载的Customer对象,调用它的getOrders().iterator()方法就可以导航到所有关联的Order对象,假如在关联级别使用 了延迟加载检索策略,那么首次执行此方法时,Hibernate会从数据库中加载关联的Order对象,否则就从缓存中取得Order对象

robbinBlog 1511

GEE APP:基于GEE的红树林监测平台

本文将介绍如何利用Google Earth Engine平台,结合Landsat系列卫星影像和SRTM高程数据,实现红树林分布的动态监测与变化分析。

此星光明博客 160

Hibernate检索策略与检索方式

Hibernate的Session在加载Java对象时,一般都会把鱼这个对象相关联的其他Java对象也都加载到缓存中,以方便程序的调用。但很多情况下,我们不需要加载太多无用的对象到缓存中,一来会占用大量的内存,二来会增加数据库的访问次数,使得程序的运行效率降低。为了合理的使用缓存,Hibernate提供了不同的检索策略来解决这些问题。 作用域       在说检索策略之前,先了解一下检

紫羽风的博客 3825

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Hibernate3入门之第四章Hibernate的检索方式

Hibernate的检索方式 Hibernate的检索方式: 检索方式:查询的方式: 导航对象图检索方式 :根据已经加载的对象导航到其他对象 Customer customer = (Customer)session.get(Customer.class,1);//得到用户的实例化对象 customer.getOrders();// 获得到客户的订单 OID 检索方式 :按照对象的 O...

SYJ_1835_LPM的博客 268

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Hibernate检索方式概述

Hibernate提供以下几种检索对象方式:1导航对象图检索方式,根据已加载的对象导航到其它对象2.OID检索方式,按照对象的OID来检索对象3.HQL检索方式,使用面向对象的HQL查询语言4.QBC检索方式,使用QBC(Query by Criteria)API来检索对象,这种API封装了基于字符串形式的查询语句,提供了更加面向对象的查询接口5.本地SQL检索方式,使用本地数据库的SQL查询语句...

qq_40208605的博客 403

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Hibernate的五种检索方式

Hibernate的五种检索方式分别是: 导航对象图检索方式。(根据已经加载的对象,导航到其他对象。) OID检索方式。(按照对象的OID来检索对象。) HQL检索方式。(使用面向对象的HQL查询语言。) QBC检索方式。(使用QBC(Qurey By Criteria) API来检索对象。) .本地SQL检索方式。(使用本地数据库的SQL查询语句。) 1、导航对象图检索方式 ...

qq_40714770的博客 1106

Hibernate的检索方式

hibernate支持五种方式检索 第一种导航对象图检索 : 在程序中已经获得持久态对象,通过对象关联关系去检索出相关对象数据          例如 : Customer customer = session.get(Customer.class ,1 ); // 持久Customer                             //由于customer关联了order

欢迎来到跃行者技术博客 1549

《精通Hibernate》学习(7)——Hibernate的检索方式(上)

一、Hibernate检索方式简介   Hibernate提供以下几种检索对象的方式: 导航对象图检索方式。(根据已经加载的对象,导航到其他对象。) OID检索方式。(按照对象的OID来检索对象。) HQL检索方式。(使用面向对象的HQL查询语言。) QBC检索方式。(使用QBC(Query By Criteria)API来检索对象) 本地SQL检索方式。(使用本地数

OOM 4273

Hibernate 检索方式

Hibernate提供以下几种检索方式 1.导航对象图检索方式 2.OID检索方式 3.HQL检索方式 4.QBC检索方式 它主要由Criteria接口,Criterion接口和Express类组成,它支持运行时动态生成查询语句。 Criteria是一种比HQL更面向对象的查询方式;Criteria的创建方式: 5.本地SQL检索方式

Hsuxu的专栏 867

Hibernate 检索方式

Hibernate的检索方式,主要有以下五种。         1.导航对象图检索方式。(根据已经加载的对象,导航到其他对象。)         2.OID检索方式。(按照对象的OID来检索对象。)         3.HQL检索方式。(使用面向对象的HQL查询语言。)         4.QBC检索方式。(使用QBC(Qurey By Criteria) API来检索对象。)

jazywoo_在路上 943

hibernate检索方式详解

一.hibernate检索方式简介 通过前面的学习,我们能够在项目中引入hibernate支持,并对有关联的表进行配置。而在项目开发中,对数据库进行最多的操作 就是查询,接下来,将详细的介绍几种hibernate中常见的检索方式。 二.hibernate检索方式一:对象图检索方式 对象图检索方式适用于表与表之间有关系时的检索,意思是根据已加载的对象,导航到他的关联对象。利用对象之间的关系进

wonabi的博客 385

Hibernate HQL检索方式

Hibernate提供了以下几种检索对象的方式.    1) 导航对象图检方式.    2) OID()检索方式.    3) HQL(Hibernate Query Language)检索方式.    4) QBC(Query By Criteria)检索方式.    5) 本地SQL检索方式.     下面的表格为 HQL和QBC支持的各种运算. 运算类型 HQL运算符 QBC运...

唯品衣秀 206

【Hibernate】Hibernate的检索方式:OID、HQL、QBC

检索方式 1)导航对象图检索方式 customer.getOrders().iterator(); 2)OID检索方式 session.get()、load(); 3)HQL检索方式 // 创建Query对象 Query q = session.createQuery("from Customer as c where c.name=:name"); // 动态绑定

Alpha's 学习笔记 2098

Hibernate的5种检索方式

的检索方式主要有五种,包括导航对象图检索方式、OID 检索方式、HQL 检索方式、QBC 检索方式和本地 SQL 检索方式,接下来针对 Hibernate 五种检索方式进行详细讲解。

unber的博客 194
上一篇: Hibernate之QBC查询
下一篇: Hibernate Session中取值的get和load区别
beyond0851
博客等级 码龄15年 18粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值