Hibernate中的五种数据检索方式

findunique:findunique #findunique 这段代码基本上是为了在1000行之间搜索唯一行。 代码使用三种方法来影响唯一行。 根据位置 基于关键字 基于正则表达式 ##在职的 代码从用户那里得到三个输入,它们的源文件,句柄和单词的位置出现在日志行或关键字或正则表达式中。 根据用户的输入,将调用这三种方法之一。 ##笔记 为了使此代码正常工作,源文件中的行的结构不应随机。 立即下载

Hibernate检索数据的五种方式:

1.导航对象图检索方式。(根据已经加载的对象,导航到其他对象。)

2.OID检索方式。(按照对象的OID来检索对象。)

3.HQL检索方式。(使用面向对象的HQL查询语言。)

4.QBC检索方式。(使用QBC(Qurey By Criteria) API来检索对象。)

5.本地SQL检索方式。(使用本地数据库的SQL查询语句。)

1、导航对象图检索方式

利用类与类之间的关系来检索对象。譬如我们要查找一份订单,就可以由订单对象自动导航找到订单所属的客户对象。当然,前提是必须在对象-关系映射文件上配置了它们的多对一的关系。

Order order = (Order)session.get(Order.class,1);

Customer customer = order.getCustomer();

2、OID检索方式

主要指用Session的get()和load()方法加载某条记录对应的对象。

Customer customer = (Customer)session.get(Customer.class,1);

Customer customer = (Customer)session.load(Customer.class,1);

3、HQL检索方式

HQL(Hibernate Query Language)是面向对象的查询语言,它和SQL查询语言有些相似。在Hibernate提供的各种检索方式中,HQL是使用最广的一种检索方式。它具有以下功能:

在查询语句中设定各种查询条件。

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

支持分页查询。

支持分组查询,允许使用group by和having关键字。

提供内置聚集函数,如sum()、min()和max()。

能够调用用户定义的SQL函数。

支持子查询,即嵌套查询。

支持动态绑定参数。

Session类的Qurey接口支持HQL检索方式,它提供了以上列出的各种查询功能。

注:Qurey接口支持方法链编程风格,它的set方法都返回自身实例,而不是返回void类型。方法链编程风格能使程序代码更加简洁。

示例代码:

Query query = session.createQuery("from Customeras c where " +"c.name=:customerName andc.age=:customerAge");

// 动态绑定参数 query.setString("customerName", "Test"); query.setInteger("customerAge", 21);

// 执行检索 Listresult = query.list();

// 方法链编程风格 Listresult1 = session.createQuery( "from Customer as c wherec.name=:customerName and c.age=:customerAge").setString("customerName", "Test").setInteger("customerAge",21) .list();

4、QBC(Qurey ByCriteria)检索方式

采用HQL检索方式时,在应用程序中需要定义基于字符串形式的HQL查询语句。QBC API提供了检索对象的另一种方式,它主要由Criteria接口、Criterion接口和Expression类组成,它支持在运行时动态生成查询语句。

示例代码:

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

Criterion criterion1 = Expression.like("namr","T%");

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

criteria = criteria.add(criterion1);

criteria = criteria.add(criterion2);

// 执行检索 Listresult = criteria.list();

// 方法链编程风格 Listresult1 =session.createCriteria(Customer.class).add(Expression.like("namr""T%")).add(Expression.

eq("age", new Integer(21))).list();

Hibernate还提供了QBE(Qurey By Example)检索方式,它是QBC的子功能。QBE允许先创建一个随想模板,然后检索出和这个样板相同的对象。

示例代码:

Customer exampleCustomer=new Customer();

exampleCustomer.setAge(21);

List result1 = session.createCriteria(Customer.class).add(Example.create(exampleCustomer)).list();

QBE的功能不是特别强大,仅在某些场合下有用。一个典型的使用场合就是在查询窗口中让用户输入一系列的查询条件,然后返回匹配的对象。QBE方式目前只能支持对象属性字段的等于查询和字符串的模糊匹配,不能支持区间,或者,大于等操作。在这些情况下,还是采用HQL检索方式或QBC检索方式。

5、本地SQL检索方式

采用HQL或QBC检索方式时,Hibernate生成标准的SQL查询语句,使用于所有的数据库平台,因此这两种检索方式都是跨平台的。有的应用程序可能需要根据底层数据库的SQL方言,来生成一些特殊的查询语句。在这种情况下,可以利用Hibernate提供的SQL检索方式。

示例代码:

Query query = session.createSQLQuery("select {c.*} from CUSTOMER as cwhere c.NAME like :customerName andc.AGE=:customerAge");

// 动态绑定参数 query.setString("customerName", "Test"); query.setInteger("customerAge", 21);

// 执行检索 List result = query.list();

以上我们看到了五种检索方式的应用。
用urdf给自己的ROS小车编写模型 3.3 使用urdf编写自己的ROS小车模型 3.3.1 常见的ROS小车结构有哪些? 下面就是常见的ROS小车,相信在大家的脑海里已经有了自己小车的样子,下面我和大家一起使用urdf对ros小车建模。 这里只对urdf进行简单介绍,然后就带大家使用urdf最基础的标签,建立机器人的urdf机器人模型。关于更多细节,请参看官网:http://wiki.ros.org/urdf/Tutorials 3.3.2 什么是urdf?建模的原因? 什么是urdf? URDF(Unified Robot Descri 阅读详情

相关推荐

[LaTeX] 调整参考文献的格式(References),包括作者名缩写,行距,字体,引用顺序等等

在此记录我对LaTeX中参考文献references的尝试,主要涵盖如题几个方面。

the Blog of 等不到天亮丶等时光 4万+

Hibernate的五种数据检索方式

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

l_feilong的博客 649

F280049C Buffered Digital-to-Analog Converter (DAC)

使用DAC模块很简单,只需要配置参考电压,并写入DACVALS寄存器一个数字值即可。参考电压可配置为外部参考VDAC和内部参考电压1.65V和2.5V,并结合增益作为DAC模块最终的参考电压DACREF。举个例子,配置参考电压为内部参考电压1.65V,增益设置为2,则参考电压DACREF=3.3V,若向DACVALS写入数字值2048,则输出的DAC模块的输出带电压DACOUT=DACVALS×DACREF4096=1.65VDACOUT=

xht2403267701的博客 2369

java 方法命名find query_Java Query.findUnique方法代码示例

import com.avaje.ebean.Query; //导入方法依赖的package包/类public Result getDetail(String couponId) {CouponDetail detail = null;if (null == couponId) {return ok();}String sql = String.format("select coupon.id, ...

weixin_36410904的博客 623

calibre QRC提取寄生参数

typical将上面的文件QCI_flow里面的文件 在Cp 到当前 ,其实应该是某几个文件,但是我给忘记了 就全cp过来了 ,无影响,不过也希望大佬指正。

2202_75711937的博客 1518

国产AI芯片实战:用寒武纪MLU370低成本部署DeepSeek-R1,实测推理效果与成本分析

本文详细介绍了寒武纪MLU370芯片在部署DeepSeek-R1大模型时的实战效果与成本优势。通过实测数据对比,MLU370在推理速度、能效比和本地化服务方面表现突出,尤其适合智能客服、内容生成等场景,可显著降低硬件投入和运维成本。

weixin_30613727的博客 455

hibernate高级工具类(含分页)

最近笔者在研究一套系统(jeeCMS)的源码,看到他对于hibernate的封装,顿时生出一种惊为天人的感觉,特与诸君分享。 这里面用到了两个基础知识,笔者在这里列一下,对于hibernate不熟悉读者可以先看下面两几篇博客: hibernate基本操作:https://www.cnblogs.com/jack1995/p/6952704.html hibernate Criteria查询操作:h...

专注做分享 1448

AirSim安装和地图加载

详细教程如何安装AirSim并加载地图

fegxg的博客 3033

hibernate 通用泛型DAO

package org.lzpeng.dao;      import java.io.Serializable;   import java.util.List;   import org.hibernate.Criteria;   import org.hibernate.Query;   import org.hibernate.criterion.Criterion;   i

gaojiyinhang2的专栏 691

AIoT 在线工程实训平台案例——智能家居

AIoT 在线工程实训平台案例——智能家居的操作步骤

m0_53608652的博客 1430

玩转Docker | 使用Docker部署MediaCMS内容管理系统

玩转Docker | 使用Docker部署MediaCMS内容管理系统

qq_59334230的博客 2918

Hibernate 中的联合主键解决方案

有时候一张表中会定义多个主键,即联合主键,Hibernate 对联合主键也提供了支持,由于 Annotation 现在用的比 XML 更加流行,则本文以 Annotation 讲解。 既然一张表中定义了联合主键,则在面向对象的思想中,他们都是主键,在 JAVA 中可以专门定义一个类来存放主键,Hibernate 文档说明此主键类必须实现 Serializable 接口,并且要重写 equals() 方法和 hashCode() 方法。定义如下主键类 ApplePk: 1: package

MZULE 优快云 1085

【算法】克里金kriging参数值预测模型

模型中特征值2个,目标值1个,data数据集如图所示。搭建kriging参数值预测模型。

weixin_48618536的博客 5059

Hibernate的检索及五种数据检索方式

检索数据时的 2 个问题1). 不浪费内存:当 Hibernate 从数据库中加载 Customer 对象时,如果同时加载所有关联的 Order 对象, 而程序实际上仅仅需要访问 Customer 对象,那么这些关联的 Order 对象就白白浪费了许多内存.2). 更高的查询效率:发送尽可能少的 SQL 语句类级别的检索策略2. 类级别的检索策略:(主要掌握 loa...

weixin_33937913的博客 144

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Hibernate开发之数据检索方式

Hibernate开发之数据检索方式 一丶概述 Hibernate为我们提供了多种数据检索方式,而在项目中,实际上用得最多的操作也是检索数据。hibernate检索数据可以有5中方式。如以下: (1)导航对象图检索方式:  根据已经加载的对象导航到其他对象 (2)OID 检索方式:  按照对象的 OID 来检索对象 (3)HQL 检索方式: 使用面向对象的 HQL 查询语言 (4)QB

nicholas丶lkx的博客 353

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【Hibernate】检索数据的五种方式

我们知道Hibernate为我们提供了很多种数据查询方式,有成为Hibernate的检索方式,而且查询时我们在项目中进行的最多的操作,那么如何利用Hibernate检索数据呢?下面让我们学习了解一下: Hibernate检索数据的五种方式: 1.导航对象图检索方式。(根据已经加载的对象,导航到其他对象。) 2.OID检索方式。(按照对象的OID来检索对象。) 3

LFSenior 517

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Hibernate检索方式

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

lenotang的专栏 5468

hibernate提供的5种检索数据方式

一、五种检索数据方式 1、OID检索,即使用session.get或session.load通过类及指定id查询数据,如Customer c=(Customer)session.get("Customer.class",1); 2、导航检索,即A类中含有另一个B类对象,获得A类后便可导航得到B对象数据 3、HQL检索,即使用hql语言得到数据,如session.createQuer...

aa8102980的博客 189

Hibernate的查询方式

Hibernate的查询方式 Hibernate 的检索方式主要有五种,包括导航对象图检索方式、OID 检索方式、HQL 检索方式、QBC 检索方式和本地 SQL 检索方式,接下来针对 Hibernate 五种检索方式进行详细讲解。 1.导航对象图检索方式 这种方式利用实体类的内部关联进行查找,不需要通过特定的方法和工具 Student student = (Student)session.get(Student.class,1); Grade grade = student.getGrade();//通过

jamenu的博客 1225

Hibernate的5种检索方式

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

qq1424035130的博客 282
上一篇: oracle数据库服务器02
下一篇: JVM的内存结构
2YSP
博客等级 码龄10年 12粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值