Hibernate总结2

Cadence——原理图相关教程 包含创建文件,原理图,元器件,规则检查,PDF与BOM清单输出,各类PCB网表 阅读详情

查询:

Hibernate支持三种查询方式

(1)hql

(2)条件查询Criteria,Query

(3)原始sql

 

hql查询

它全称Hibernate Qusery Language, HQL是面向对象的(OO)的. HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。

注意:大小写敏感。

(1)    from子句

        i.      查询所有

1.   session.createQuery("from Person");

       ii.      查询单条数据

1.   有两种方式取值:

2.   先得到一个Query对象实例

a)   query.uniqueResult()

b)   query.list().get(0)

3.   查询具体表中某些字段数据

a)   session.createQuery("select name,age from Person");

4.   它返回的List 集合,元素是数组对象。

(2)    关联(Association)与连接(Join)

inner join(内连接),可以简写为join

left outer join(左外连接) ,可以简写为left join

right outer join(右外连接) , 可以简写为right  join

full join (全连接,并不常用)

(3)    聚集函数

HQL查询甚至可以返回作用于属性之上的聚集函数的计算结果:

select avg(Person.weight), sum(Person.weight), max(Person.weight), count(Person) from Person person

(4)    多态查询

一个如下的查询语句:

from Person person

不仅返回Person类的实例, 也同时返回它子类的实例. Hibernate 可以在from子句中指定任何 Java 类或接口. 查询会返回继承了该类的所有持久化子类 的实例或返回声明了该接口的所有持久化类的实例。

(5)    where子句

where子句允许你将返回的实例列表的范围缩小. 如果没有指定别名,你可以使用属性名来直接引用属性:

(6)    表达式

在where子句中允许使用的表达式包括 大多数你可以在SQL使用的表达式种类:

(7)    order by子句

查询返回的列表(list)可以按照一个返回的类或组件(components)中的任何属性(property)进行排序:

 

可选的asc或desc关键字指明了按照升序或降序进行排序.

(8)    group by子句

一个返回聚集值(aggregate values)的查询可以按照一个返回的类或组件(components)中的任何属性(property)进行分组:having子句在这里也允许使用.

(9)    子查询

对于支持子查询的数据库,Hibernate支持在查询中使用子查询。一个子查询必须被圆括号包围起来(经常是SQL聚集函数的圆括号)。 甚至相互关联的子查询(引用到外部查询中的别名的子查询)也是允许的。

Criteria(QBC中C指的就是Criteria)

它是一个接口,它的使用比hql要容易的多。Criteria接口与DetachedCriteria。

离线操作:就是当请求和数据库断开连接的时候,DetachedCriteria也可以操作。它不需要借助Session来创建,而是直接用。

 

离线操作:即便是数据库连接中断也能进行数据操作。

(二者的区别就是DetachedCriteria可以离线操作,而Criteria不可以)

 

带条件查询:用到Restrictions 对象,该对象用于添加约束。Person为一个POJO类。

 

 

模板查询(QBE,E就是指Example)

也是一种查询方式,比较常用,是允许通过给对象设值来查询。

例子:

 

 

使用聚集函数:用到 Projections这个投影类,里面包含了对聚集函数操作,返回的结果可用uniqueResult() 取得.

 

 

结果集排序:Order对象来操作,里面包含了升序,降序的方法。

 

原始的SQL

使用SQL查询可以利用某些数据库的特性,或者用于将原有的JDBC应用迁移到Hibernate应用上。使用命名的SQL查询还可以将SQL语句放在配置文件中配置,从而提高程序的解耦,命名SQL查询还可以用于调用存储过程。

 

对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。

 

 

命名SQL查询

 

可以将SQL语句不放在程序中,而放在配置文件中,这种方式以松耦合的方式配置SQL语句,可从而降低耦合。

在Hibernate的映射文件中定义查询名,然后确定查询所用的SQL语句,然后就可以直接调用该命名SQL查询。在这种情况下,不需要调用addEntity()方法,因为在配置命名SQL查询时,已经完成了查询结果与实体的关联。

 

在配置文件里配置

调用

             

Hibernate 3引入了对存储过程查询(stored procedure)和函数(function)的支持.以下的说明中,这二者一般都适用。 存储过程/函数必须返回一个结果集,作为Hibernate能够使用的第一个外部参数. 下面是一个Oracle9和更高版本的存储过程例子.

 

创建一个存储过程

配置

 

使用Query接口或Criteria接口实现分页

 

  ● setFirstResult(),设置返回结果集的起始点。

  ● setMaxResults(),设置查询获取的最大记录数。

告别模糊与偏色:使用RKISP Tuner为RK3588s+IMX415进行图像质量调优的实战心得 本文详细介绍了如何使用RKISP Tuner为RK3588s+IMX415进行图像质量调优的实战经验。从调试环境搭建到3A算法优化,再到画质增强模块的深度调参,提供了全面的技术指导和参数建议,帮助工程师解决噪声、色偏和细节模糊等常见问题,显著提升成像质量。 阅读详情

相关推荐

UE5垃圾回收优化实战:定位GC卡顿与内存泄漏

垃圾回收(GC)是Unreal Engine 5中保障UObject内存安全的核心机制,其基于引用图的标记-清除原理决定了性能高度依赖引用结构合理性。当GC频繁触发或单次耗时突增,往往映射出蓝图强引用冗余、C++根对象管理失控或资源生命周期设计缺陷等底层问题。技术价值在于降低主线程阻塞、稳定60帧体验、抑制内存异常增长;典型应用场景包括关卡切换卡顿、UI打开后持续GC、打包后内存不释放等。本文聚焦UE5特有的Full GC模式、UObject生命周期约束及GC触发时机不可见性,提供从蓝图变量规范、TSoft

weixin_31995251的博客 362

Hibernate 的多种查询方式

本文对 Hibernate 的多种查询方式、抓取策略和批量抓取进行了详细介绍。Hibernate 提供了多种查询方式和抓取策略,可以根据实际需求选择合适的方式和策略来提高系统的性能和稳定性。同时也需要注意不同的查询方式和抓取策略的使用场景,避免因为不当的使用方式导致系统性能下降的问题。

互联说 1237

DDSP(Differentiable Digital Signal Processing) 开篇

文章目录DDSP可以用来做什么?下一步工作 工作中接触到了DDSP声码器,但非科班出声的我对这块知识非常陌生,甚至带有一些畏惧的心理,但是为了工作为了进步,必须硬下头皮去啃,相信只要耐心地坚持,没什么能难到我。于是从今天开始,就用这个博客专栏来记录我的学习历程,希望也能帮助到你~ DDSP对应的论文是:DDSP: Differentiable Digital Signal Processing 先翻译一篇来自DDSP论文作者的对DDSP的介绍的文章。 今天,我们很高兴地介绍可微数字信号处理(DDSP)库。

YeeKo的博客 9246

在Java的Hibernate框架中对数据库数据进行查询操作

Hibernate查询语言(HQL)是一种面向对象的查询语言,类似于SQL,但不是对表和列操作,HQL适用于持久对象和它们的属性。 HQL查询由Hibernate转换成传统的SQL查询,这在圈上的数据库执行操作。 虽然可以直接使用SQL语句和Hibernate使用原生SQL,但建议使用HQL尽可能避免数据库可移植性的麻烦,并采取Hibernate的SQL生成和缓存策略的优势。 都像SELECT

F2Zf的博客 1万+

(一)Tushare Pro教程:股票基本数据接口

 一直使用tushare作数据源,这里开个教程大家一起学习。 一、介绍        tushare是一个python股票数据源,现已升级到tushare pro版本,新版本在数据稳定性和获取速率上大幅提升。与wind、东财等收费数据源相比,tushare pro算是金融数据界的良心之作,其为从事金融工程、量化研究等方向的同学们提供了便利。tushare pro还有一点突出的特色就是已经将股票...

虎毛的博客 4万+

手把手教你用STM32实现SPWM逆变器控制(附完整代码)

本文详细介绍了如何使用STM32微控制器实现SPWM逆变器控制,包括硬件设计、PWM生成配置、正弦表生成与DMA传输,以及闭环控制与性能优化。通过完整的代码示例和实测数据,帮助开发者快速掌握SPWM技术,应用于新能源和电力电子领域。

weixin_29296241的博客 318

hibernate的三种查询方式

我个人认为,如果你想靠着背面试题来获得心仪的offer,用癞蛤蟆想吃天鹅肉形容完全不过分。想必大家能感受到面试越来越难,想找到心仪的工作也是越来越难,高薪工作羡慕不来,却又对自己目前的薪资不太满意,工作几年甚至连一个应届生的薪资都比不上,终究是错付了,错付了自己没有去提升技术。这些面试题分享给大家的目的,其实是希望大家通过大厂面试题分析自己的技术栈,给自己梳理一个更加明确的学习方向,当你准备好去面试大厂,你心里有底,大概知道面试官会问多广,多深,避免面试的时候一问三不知。

2401_84411473的博客 1577

DrissionPage无头模式破盾记:实战绕过CloudFlare 5秒验证

本文详细介绍了如何使用DrissionPage无头模式绕过CloudFlare 5秒盾验证,提升爬虫效率。通过关键参数配置、服务器环境问题处理及高级绕过技巧,如动态UA轮换和鼠标移动模拟,帮助开发者有效应对反爬机制。实战案例展示了如何结合最新Chrome UA和参数设置实现稳定数据采集。

weixin_29327525的博客 487

Hibernate查询的方法

Hibernate查询的方法 一:hibernate多记录查询 1、原生SQL(Native SQL)查询 2、QBC查询 3、HQL查询 1、原生SQL(Native SQL)查询 session并没有提供直接查询多条记录的方法,但提供了间接查找多条记录的对象 通过session.createNativeQuery()获得query对象,该对象可以执行sql语句完成查询操作 ...

qq_45429856的博客 960

射频总集篇:(不断更新)

射频每一章涉及到的重点理论/设计方法 CHAPTER 1 传输线理论 输入阻抗Zin,负载阻抗ZL,驻波比ρ,反射系数 CHAPTER 2 波导 矩形波导,圆波导,同轴线 CHAPTER 3 微型带状传输线 微带线的参数设计,带状线的参数设计 CHAPTER 4 ...

jieyannn的博客 1921

基于STM32设计的便携式心电信号监测系统_474

本课题设计并实现了一种基于STM32单片机的便携式心电信号监测系统。系统以STM32F103C8T6为核心控制单元,结合PulseSensor心率传感器,实现对人体心率信号的采集与处理。通过单片机内部ADC模块对传感器输出的模拟电压信号进行采样,并对采集数据进行分析处理,从而计算得到实时心率值。

161

hibernate的三种查询方式,想转行当程序员的必看

从hibernate 3版本开始才支持 //更新 String hql=“update Users set uname=‘王五’,upwd=‘321’ where uid=3”; int res = session.createQuery(hql).executeUpdate(); //删除 String hql=“delete from Users where uid=3”; int res = session.createQuery(hql).executeUpdate(); /* 返回值结果: 正整数

m0_63102464的博客 1044

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

基于Hibernate3.2 Hibernate tools 的使用

 由于新发布的Hibernate Tools是一个比较庞大的工具包 而且已经是作为Eclipse3.2 的插件发布的然而以前的很有用的工具hbm2java和hbm2ddl都是非常有用的工具所以我们应该把这些有用的工具找出来继续使用  环境jdk-1_5_0_07ant 1.6.5Hibernate 3.2 cr2Hibernate Tools-3.2.0.beta6

Vincent的造轮子经验 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Hibernate2与Hibernate3的区别

Hibernate2与Hibernate3的区别Hibernate3使用了java1.5的泛型语法,Hibernate3.0版本的变化包括三个方面:(1)API的变化,它将影响到Java程序代码。(2)元数据,它将影响到对象-关系映射文件。(3)HQL查询语句。值得注意的是, Hibernate3.0并不会完全取代Hibernate2.1。在同一个应用程序中,允许Hibernate3.0和

hi_jess的专栏 3641

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

hibernate2与hibernate3区别及oracle

Hibernate3 的一些问题  做Hibernate第一个小例子就失败,原来是Hibernate2和Hibernate3的区别造成的  我用的是Hibernate3,而书上的例子、网上的例子全都是Hibernate2的,在网上的例子中{Eclipse快速上手Hibernate(http://blog.youkuaiyun.com/javamxj/archive/2005/04/02/335076.as

泡菜 3788

[Hibernate] Hibernate配制项之hibernate.hbm2ddl.auto

Hibernate配制项之hibernate.hbm2ddl.auto 前言 我们在本地作开发时,经常会定义好实体,继而在相应的数据库中建表。而这样建表继烦琐,浪费时间,又容易出错。而Hibernate的hibernate.hbm2ddl.auto会帮助我们根据定义好的实体,自动创建,更新,验证数据库表。hibernate.hbm2ddl.auto有好几个选项,接下来我们依次介绍。 hibe...

weixin_36210698的博客 3899

Hibernate2升级为Hibernate3

关于将Hibernate2升级为Hibernate3的基本步骤说明 第一步:换jar包 即将hibernate2.1.jar包换成hibernate3.jar,这一步很简单这里就不具体说了。 第二步:修改Hibernate.cfg.xml文件(由于项目有遗留的原因)这里有部份模块采用的是Struts+Hibernate框架的 即将hibernate.cfg.xml文件中的 "-//Hibernat

jbgtwang的专栏 706

hibernate 2升级到 hibernate3

2月16日hibernate 2升级到 hibernate31.首先将hibernate2.jar替换为hibernate3.jar 2.将所有程序中的net.sf.hibernate替换为org.hibernate 3.但是有例外net.sf.hibernate.expression.Expression换为org.hibernate.criterion.Expression  如果用e

323

struts2和hibernate整合

一.struts2和hibernate框架分别作用 struts2是MVC框架,而会hibernate是持久层框架。struts2框架是用来接受客户端请求,与数据库打交道,取数据,并响应客户端,而hibernate框架封装数据库,操作数据库。 二.实现流程 在jsp页面中提交数据,struts2里的action里的相关get,set方法获得数据,在该action里定义一个方法传到数据库中,hibe...

asdfqwe9854的博客 687

Hibernate 2 升级为Hibernate 3 的注意事项

    目的,主要是那当前的项目练手,熟悉一下hibernate2和hibernate3的差别,给当前项目一点扩展的空间。1.首先将hibernate2.jar替换为hibernate3.jar(hibernate-3.0.5)  hibernate-tools.jar也替换成新的(从hibernate-tools-3.0.0.alpha4a找出来的)2.将所有程序中的net.sf.hiber

Happy Winner 659

Struts2和Hibernate的整合

本文主要讲Struts和Hibernate两种框架的整合,以模仿用户登录为例 第一步:写三个页面(分别为inde.jsp,success.jsp,fail.jsp) index.jsp的主要代码: 用户名: 密 码: success.jsp的主要代码 登录成功,欢迎登录!

Action 5566

Spring、Struts2、Hibernate整合

一、   Struts 2框架整合Spring步骤 工作之后这些框架很久都没接触了,作为备忘,记录一下,以后用到的时候方便查看 1、 复制文件。复制struts2-spring-plugin-x-x-x.jar和spring.jar到WEB-INF/lib目录下。其中的x对应了Spring的版本号。还需要复制commons-logging.jar文件到WEB-INF/lib目录下。

hantianjie_的专栏 999

Hibernate与H2

Hibernate与H2 Jar: dependency>     groupId>com.h2databasegroupId>     artifactId>h2artifactId>     version>1.2.144version> dependency>             dependency>     groupId>org.jsoupgroupId>

superlidengke的专栏 3255

hibernate2 升级为hibernate3的需要注意的事项

1.首先将hibernate2.jar替换为hibernate3.jar(hibernate-3.0.5)hibernate-tools.jar也替换成新的(从hibernate-tools-3.0.0.alpha4a找出来的)2.将所有程序中的net.sf.hibernate替换为org.hibernate. 3.但是有例外net.sf.hibernate.expression.Expressi

java 1374

Hibernate 2 与 Hibernate 3的一些区别

对 DTD 文件的引用 在Hibernate 2中是这样: PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"> 在Hibernate 3中必须这样设置: PUBLIC "-//Hibernate/Hibern

JavaDiablo的专栏 804

Struts2+Hibernate 实现数据分页

Struts2+Hibernate 实现数据分页 1.用Hibernate实现分页技术: /** * 使用hql语句进行分页查询 * @param hql 需要查询的hql语句 * @param offset 第一条记录索引 * @param pageSize 每页需要显示的记录数 * @return 当前页的所有记录 */ @SuppressWarn

TKD03072010的专栏 6519
上一篇: Hibernate总结1
下一篇: Hibernate总结3
Granth
博客等级 码龄17年 5粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值