第5章 Hibernate持久层技术(3)

合集下载

基于Hibernate对J2EE数据持久层设计与实现

基于Hibernate对J2EE数据持久层设计与实现
T asci 接 口是 对 实 际事 务 实 现 的一 个 rnat n o
抽象 ,具体实现 Hb ra 做得非常灵活 ,包括 int e e J C的事务、T 中的 U eTasci 、 DB JA srrnatn甚至可 o
以是 C R A 事 务。 OB
特点和优势使其在多种实现数据持久层解决方案

来非常觯 方匣开发人员很容易上手。 i r t H bn e ea 可以和多种应用服务器良 好集成’ 并且支持几乎所 有流行 的数据库服务器 , 为开发企业级分布式 we 应用程序提供大量的技术支持。 b 3Hb rae ient体系结构
适配器 、以及用户名和密码等, 这些属性可以在 Hbra ient e配置文件(ientegml hb ma ̄ hbraef. 或 ie t . x poet s ̄设定。另—个作用是 , Hbra rpr e) i P 在 ie t n e的 启动过程中,o fuao 类的实例首先定位映射 C ni rt n g i 文档的位置 , 从配置文件中读取这些配置信息 , 然 后创建—个 Ssin at y es Fco 对象。 o r
中成为开发 ^员首选的工具。 1O M设 计模式 R 1 M设 汁 式出现的背景 。 . OR 1 对象——关 图 l H b rae体 系结构 i en t 系映射 ( b cR li a p g简称 O M) O j t e t nM p i , e / ao n R , 是 在没 有 Hb rae的情况 下 , C成为 了 ie t n J DB 随着面向对象的软件开发方法发展而产生的。面 Jv 语言的数据库常用接 口, aa 它的效率很高 , 性能 向对象设计是当今主流的开发方法,而关系数据 很好。但是 目 , 前 随着应用系统的扩大, 数据表和 库是永久性存放数据的主流存储系统。对象和关 数据关系越来越复杂 , B J C代码变得很复杂 , D 很 系数据是业务实体的两种表现形式, 在数据库中 表现为关系数据。 性能和可靠陛。 在内存中的xg 间存在关联和继承关系,而在 C  ̄_ H b r t的出现 , i ne ea 实现了以对象关系映射的 数据库中的关系数据无法直接表达多对多关联和 方式来对数据库进行操作 ,这一过程对于开发者 继承躲 。二者之间存在着不匹配 , 导致实现数据 来 说是透 明的,ien t通过 P Ib rae t O对象 和 Hie— br 的持久性 比 较困难。 R O M是基于关系数据库的面 nt A I a e的 P 来取代复杂的 J B 开发过程,它的 DC 向对象数据持久层设计的一种良好解决方案 , 它 成功得益 于它 的体系结构的设 计。图 1 展示 了 能够为对象一关系数据库之间提供—个成功的企 Hient 的体系结构,应用程序通过持久化对象 b rae Prie t jc 来 s O s br t n 1 . i 业级映射解决方案 ,尽可能的弥补对象和关系之 (es tn bet) 访 问 Hie aeAP 而 H — b mae e t 利用 hbra.rpre 或 X pig ie tpoet s n e i MLMapn 间的差异。 1 M的优点。O M模式实现 了对象到 来配置 H b r t所使用的数据库等资源。 2 OR R i ne ea 关系型数据库中的表 的自动 的和透 明的映射 , 将 4Hb rae 口 ient接 数据从一种表示形式转换 为另一种表示形式 , 将 Hb rae ien t实现数据层持久化的原理是应 用 对象映射到关系型数据库, 并且如果对关系数据 系统通过持久化对象调用 Hb rae ien t提供的接 口, ien t的核心, 它们包括 库结构的简单改动并不会影响到面向对象代码部 持久层的各种接 口是 Hb rae

hibernate的基本用法

hibernate的基本用法

hibernate的基本用法Hibernate是一个开源的Java框架,用于简化数据库操作。

它为开发人员提供了一个更加简单、直观的方式来管理数据库,同时也提高了应用程序的性能和可维护性。

本文将逐步介绍Hibernate的基本用法,包括配置、实体映射、数据操作等。

一、配置Hibernate1. 下载和安装Hibernate:首先,我们需要下载Hibernate的压缩包并解压。

然后将解压后的文件夹添加到Java项目的构建路径中。

2. 创建Hibernate配置文件:在解压后的文件夹中,可以找到一个名为"hibernate.cfg.xml"的文件。

这是Hibernate的主要配置文件,我们需要在其中指定数据库连接信息和其他相关配置。

3. 配置数据库连接:在"hibernate.cfg.xml"文件中,我们可以添加一个名为"hibernate.connection.url"的属性,用于指定数据库的连接URL。

除此之外,还需要指定数据库的用户名和密码等信息。

4. 配置实体映射:Hibernate使用对象关系映射(ORM)来将Java类映射到数据库表。

我们需要在配置文件中使用"mapping"元素来指定实体类的映射文件。

这个映射文件描述了实体类与数据库表之间的对应关系。

二、实体映射1. 创建实体类:我们需要创建一个Java类,用于表示数据库中的一行数据。

这个类的字段通常与数据库表的列对应。

同时,我们可以使用Hibernate提供的注解或XML文件来配置实体的映射关系。

2. 创建映射文件:可以根据个人喜好选择使用注解还是XML文件来配置实体类的映射关系。

如果使用XML文件,需要创建一个与实体类同名的XML文件,并在其中定义实体类与数据库表之间的映射关系。

3. 配置实体映射:在配置文件中,我们需要使用"mapping"元素来指定实体类的映射文件。

基于Hibernate的J2EE持久层技术

基于Hibernate的J2EE持久层技术

并进行分析,从中发现网络或系统中所有违反安全策略的行为 和被攻击的迹象。当入侵检测模块检测到计算机子网受到SYN F I。 d 攻击时,人侵检测模块便向主机发出受到攻击的警告。 。 这个过程的算子模型如图4 所示。 模型如下:SYN F扬 仿真攻击工具向系统输人SYN FI以 d o 对 攻击信息hm 。假设SYN F 0od 攻击的攻击信息hm 通过了路 1 由器、防火墙, 最后到达了入侵检测模块。当人侵检测模块接 收到攻击信息 h m 后, 仿真算法中的攻击行为判断函数进行运 算。在运算后可以发现攻击为SYN F o d 攻击, l 入侵检测模块 向仿真IDS 告警计算机输出SYN F 。d 攻击告警信息。 I 。
SYN F 0叱 又称半开式连接攻击。 1 每当我们进行一次标准 的TCP 连接就会有一个三次握手的过程。 而SYN F o d 在它 l
的实现过程中只有前两个步骤,当服务方收到请求方的SYN 并
到把关系记录完整的映射到持久对象的关系上来。Hib 枷 t 作 e e 为一种开源的JZEE ORM技术框架,它可以为管理持久层数据 的完整提供解决方案。 提供一个 XML 文档(关系一对象映射资源)来完成持久对象与关
系 数据表的映射, 过一个H bernat P 0P rties x ML 文 并通 i e r e
T 技
术 一一一一— 一
一一 一 -
9嘿墨 鳖 ( 磺 暇漆殉
基于 H be na e 的 J ZE三持久层技术 i r t
郑苑丹
1 ( 广东工业大学计算机学院
广东广州 5,。 2 广东海洋大学信息学院 。9O
广东湛江524088 )
摘 要: 阐 述Hi忱mat 的体系 e 结构及关键 概念, 给出基于Hi挽mat 的JZ E持久层技术的实现方法。 一种开源的JZEE ORM e E 作为 技术框架, b e na e 目 Hi r t 前被广泛应用。 在中小规模企业中, 选择Hibe n a e , r t 不仅可以迅速获得稳定、可靠的持久层技术框 架,同时,H i b er n a e 优雅的关系设计思想,对于项目 t 组积累宝贵的数据库设计经验,同样有积极意义。 关键词: ORM Hib rnate e POJO 持久层 对象关系映射 中图分类号: TP3n . 1 2 文献标识码: A 在Hibernat 、 e JDO 出现以前, ORM (o b ect一 at ion 访问代码, j Rd DAO 接口 的实现类, 甚至可以是BMP 里面的访向 Map扭ng , 对象关系映射)的实现方法有两种, t i yBe n 或 数据库的代码。 En t a Hib m at 完美的实现了关系记录到持久对象关系的完整映 e e JDBC + DAO(Data Access o bje t , c 一种JZEE 持久层模式)。 br t Z 项目 在绝大多 数的中 规模J EE 项目 较少使用Enti yBean , 射。在应用Hi e na e 的J EE 项目中, 组无须再将精力 小 Z 中, t 而JDBC+DAO 则存在较多问题, 一 Ma pi g(对象一 在0 R P n 关 花在数据持久上,可以简单的获取优雅的数据持久层。Hi e 一 br t 系映射) 的过程中,尤其是跨表查询,显得拖泥带水,很难做 na e 的体系结构如图 1 所示,它要求使用者为每一个持久对象

持久层概述——精选推荐

持久层概述——精选推荐

持久层概述分层结构是软件设计中⼀种重要的思想。

持久层就是在软件的三层体系结构的基础上发展起来的,它以解决对象和关系这两⼤领域之间存在的问题为⽬标,为对象-关系数据库之间提供了⼀个成功的映射解决⽅案。

1.持久化对象我们已经知道,程序运⾏期间的数据都是保存在内存中的。

由于内存是易失性存储器,其中的数据掉电后就会丢失,但⼀些重要的数据需要长久保存以供使⽤,显然,仅依靠内存⽆法实现数据的长期保存。

为解决该问题,在计算机领域引⼊了持久化概念。

持久化(Persisent)指的是将内存中的数据保存到磁盘等存储设备中。

持久化对象是指已经存储到数据库或磁盘中的业务对象。

在java中对对象持久化的⽅式有3种:. 序列化对象,将对象存放到格式化的⽂本⽂件中。

.将对象持久化到XML⽂档中。

.将对象持久化到数据库中,⼀般为关系数据库。

关系数据库中遵循的⼀条重要原则就是“数据库独⽴性”,即数据库可以独⽴于应⽤程序⽽存在。

由此可知,数据可以⽐任何应⽤都存在得更持久。

同时,不同应⽤也可以共享数据库中的数据。

2.分层体系结构和持久层 随着计算机应⽤软件的不断发展,应⽤程序从最初的单层结构逐渐演变为双层结构。

分层也成为了软件设计中的⼀种重要思想。

双层结构分为应⽤层和数据库层,在双层结构中,⽤户界⾯和业务逻辑都由应⽤层负责实现,数据库层只负责存放持久化的数据。

这样,同⼀个程序⽂件中⽤户界⾯代码和业务逻辑代码会出现混合,显然会产⽣程序结构不清晰、维护困难等问题,⽽且不熟悉编程语⾔的美⼯⼈员也⽆法参与到软件开发过程中来。

这些问题促使了应⽤层的再次划分,将⽤户界⾯的设计从业务逻辑层中独⽴出来,形成单独的⼀层----表⽰层。

经过再次划分后的软件结构就从双层结构变成了经典的三层结构。

经典的软件应⽤体系结构有三层、表⽰层、业务逻辑层、和数据库层。

.表⽰层:提供了与⽤户交互的接⼝。

实现⽤户操作界⾯,展⽰⽤户需要的数据。

.业务逻辑层:完成业务流程,处理表⽰层提交的数据请求,并将要保存的数据提交给数据库。

hibernate框架的工作原理

hibernate框架的工作原理

hibernate框架的工作原理Hibernate框架的工作原理Hibernate是一个开源的ORM(Object-Relational Mapping)框架,它将Java对象映射到关系型数据库中。

它提供了一种简单的方式来处理数据持久化,同时也提供了一些高级特性来优化性能和可维护性。

1. Hibernate框架的基本概念在开始讲解Hibernate框架的工作原理之前,需要先了解一些基本概念:Session:Session是Hibernate与数据库交互的核心接口,它代表了一个会话,可以用来执行各种数据库操作。

SessionFactory:SessionFactory是一个线程安全的对象,它用于创建Session对象。

通常情况下,应用程序只需要创建一个SessionFactory对象。

Transaction:Transaction是对数据库操作进行事务管理的接口。

在Hibernate中,所有对数据库的操作都应该在事务中进行。

Mapping文件:Mapping文件用于描述Java类与数据库表之间的映射关系。

它定义了Java类属性与数据库表字段之间的对应关系。

2. Hibernate框架的工作流程Hibernate框架主要分为两个部分:持久化层和业务逻辑层。

其中,持久化层负责将Java对象映射到数据库中,并提供数据访问接口;业务逻辑层则负责处理业务逻辑,并调用持久化层进行数据访问。

Hibernate框架的工作流程如下:2.1 创建SessionFactory对象在应用程序启动时,需要创建一个SessionFactory对象。

SessionFactory是一个线程安全的对象,通常情况下只需要创建一个即可。

2.2 创建Session对象在业务逻辑层需要进行数据访问时,需要先创建一个Session对象。

Session是Hibernate与数据库交互的核心接口,它代表了一个会话,可以用来执行各种数据库操作。

2.3 执行数据库操作在获取了Session对象之后,就可以执行各种数据库操作了。

专业技能课课程标准模板(Web)

专业技能课课程标准模板(Web)

《Web程序设计与框架技术》课程标准1、课程信息2、课程性质随着计算机硬件技术以及Internet的发展,Web技术被广泛的应用在Internet上。

伴随着网络时代的到来,人们对网络的依赖越来越多,人们需要从网络上获取越来越多的信息资源,Web技术作为信息传递的一门技术受到越来越多人的青睐。

2000年以后,随着Web应用程序复杂性不断提高,人们逐渐意识到,单纯依靠某种技术多半无法达到快速开发、快速验证和快速部署的效果。

必须整合Web开发技术形成完整的开发框架或应用模型,来满足各种复杂的应用需求。

出现了几种主要的技术整合方式:MVC的设计模型;门户服务和Web内容管理。

Struts、Spring等都是开源世界里与MVC开发框架、门户服务和Web内容管理相关的优秀解决方案。

动态网页技术是运行在服务器端的Web应用程序,程序根据用户的请求在服务器端进行动态处理后,把处理的结果以HTML文件格式返回给客户端。

当前主流的三大动态Web 开发技术是:JSP、ASP/、PHP。

2.1课程在专业中的地位《Web程序设计与框架技术》课程主要讲解JSP、Servlet、JavaBean、Struts、Spring 和Hibernate等技术。

该课程是在软件Web项目开发中最核心的课程也是整个软件技术(Java方向)最重要的一门课程,web 项目开发的基础和关键技术。

Web程序设计JSP是基于B/S模式开发的基础性核心课程,它已成为信息技术中的一个不可缺少的内容和发展基石。

随着互联网的发展,过去的静态网页已发展到现在的动态交互式网页,网站建设技术上升到一个新的层次。

现在设计制作静态网页已是件相对比较容易工作,而能设计制作具有交互式网站的人则相对比较缺乏。

许多人也对这方面的技术抱以浓厚的兴趣。

目前全国均在大力发展电子政务和电子商务,迫切需要掌握这方面建站技术的专业人才。

为了适应信息技术的发展和社会需求,近年来,我国高校的计算机专业以及相关专业的教学计划都做了调整和改革,开设了Web程序设计方面的课程。

数据库管理系统持久层的Hibernate解决方案

数据库管理系统持久层的Hibernate解决方案
Abtat l a b s n gme ty t src:Ald t ae a ma ae n s ms ( MS n e ces h es tn a suc. T esl ino t acs ojc s e DB ) eda cs tep r s t t r o re h ou o f e ces bet i e da e t a d
数据库管理系统持久层的 Hbra 解决方案 ie t ne
苏芬平 , 刘 更 , 王 海伟
( 西北 工 业 大学 机 电学 院 ,陕 西 西安 7 0 7) 10 2
摘 要: 数据库 管理 系统 都需要访 问持 久性数 据 资源 , 决持 久层 的访 问技 术是 构建 高效 、 解 灵活 的数据 库管 理 系统的基 础 。
及 将 存 储 模 型 转 换 为 内 存 中 的数 据 模 型 的 统 称 。而 持 久 层 代 表 着 某 个 特 定 系 统 中 的 一 个 逻 辑 层 次 ,这 个 层 次 将 数 据 使 用
者与数据 实体相关 联。
JE 2 E三 层 结 构 为 表 示 层 , 务 逻 辑 层 及 基 础 架 构 层 。 在 业 实 际 的项 目开 发 中 ,常 将 三 层 体 系 扩 展 为 五 层 体 系 ,即表 示 层、 制/ 控 中介 层 、 域 层 、 据 持 久 层 和 数 据 源 层 。 制/ 介 领 数 控 中 层 位 于 表 示 层 和 领 域 层 之 间 ,数 据 持 久 层 位 于 领 域 层 和 基 础 架 构 层 之 间 。由 于 对 象 范 例 和 关 系 范 例 这 两 大 领 域 之 间 存 在 “ 抗 不 匹 配 ” 所 以把 数 据 持 久 层 单 独 作 为 JE 阻 , 2 E体 系 的 一 个 层 提 出来 就 能 够 在 对 象/ 系 数 据 库 之 间 提 供 一 个 成 功 的 企 关 业级 映射解决方案 , 补这两 种范例之 间的差异 。 弥

Hibernate数据缓存技术

Hibernate数据缓存技术

H i b e r n a t e缓存 是 位 于 应 用 程 序 与 物 理 数 据 源 之
间, 用 于 临时存 放复 制数 据 的 内存 区域 , 目的是 为 了减 少 应用 程序 对物 理 数据 源访 问 的次 数 , 从 而 提 高 应 用 程 序 的性能 。H i b e r n a t e在 查 询数 据 时 , 首 先 到 缓 存 中 去 查找 , 如果 找 到就 直接 使用 , 找 不到 的时 候就 会从 物 理 数据 源 中检索 , 所以 , 把 频 繁使 用 的数 据 加载 到缓 存
张雄 彪
( 湖 北 大学 数 学与计 算机 科 学学 院 , 武汉 4 3 0 0 6 2 )
摘 要: H i b e r n a t e是一种 面向 J a v a编程环境 的关 系数据 库映射工具 。本 文 系统地 分析 了 H i b e na r t e的缓存 分类 , 并描述
了一级缓存 与二级缓存 的缓存策略 , H i b e r n a t e如何 应 用缓 存查找 对 象和 对缓存 的 管理 , H i b e r n a t e查询缓存 以及性 能优
化策略 。
关键词 : H i b e r n a t e ; 缓存 ; 优 化 策 略
中图分类号 : T P 3 1 6 7 4 — 3 4 4 X( 2 0 1 3 ) 8 - 0 0 6 9 - 0 2
作者简介 : 张雄 彪( 1 9 8 7一) , 男, 硕 士研 究生 , 研 究方向为人 工智能与知识 工程 。
生, 或者 你 正处理 大 量 对 象 、 需要 对有 效 管 理 内存 时 ,
你 可 以调用 e v i c t ( ) 方法 , 从 一 级缓 存 中去 掉这 些对 象
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5.5.1 .5 select 子句
ห้องสมุดไป่ตู้elect子句:如果要查询两个以上的属性,需要使用 select 子句。查询结果会以数组的方式返回,数组 中依次包含了所获取的属性数据:
Query query = session.createQuery(“select ,s.sex from Student s ”);
注:要正确运行,需要在Student类中加入一个相应的构造函数。 这种方式的查询结果中 Student 对象除了在构造时赋予的属性 值之外,其他属性均为未赋值状态。这意味着无法通过 session 对此对象进行更新
5.5.1 .5 select 子句
可以在 select 子句中子句中使用统计函数: ➢ count(),min(),max(),sum(),avg()等 select count(*) from Student ➢ 用distinct去除重复数据 select distinct s.age from Student as s ➢ 使用原生 sql 函数 select upper() from User as user
SQL 中的 on c.id = o.customerid 子句所描述的对应关系在 Hibernate 中已经由
映射文件指定,因此 HQL 并没有对应的子句;
得到的结果集
中,每个条目都是一个 Object 数组,其中包含了一个 Customers 对象与其对应的
Orders 对象
5.5.1 .10 left join 例程
5.5.1 .4 executeUpdate()方法
该方法用于执行更新或删除语句。常用于批量删除 或批量更新操作。例如: String hql = "update Book set name = :name where id = :id"; Query query = session.createQuery(hql); query.setString("name","hahahaha"); query.setInteger("id",205); query.executeUpdate();
List list = query.list(); for(int i = 0; i < list.size(); i++){
Object [] obj = (Object[])list.get(i); System.out.println(obj[0] + “ 的性别是:” + obj[1]); }
customerss_table
orders_table
5.5.1 .9 left join
Left join 返回 ”first_table” 中所有的行尽管在 ” second_table”中没有相匹配的数据
Hibernate 对应语句:
from Customers as customer left join customer.orders as order
句可以对 group by 返回的结果集进行甄选:
5.5.1 .8 联合查询
SQL 中通过 join 子句实现多表之间的联合查询。 HQL 提供了以下几种联合查询机制
➢ inner join ➢ left outer join ➢ right outer join ➢ full join(not usually userful)
List list = query.list(); for(int i = 0; i < list.size(); i++){
Student stu = (Student)list.get(i); System.out.println(stu.getName + “ 的性别是 ” +
stu.getSex()); }
HQL查询的from子句 ➢ 通常,from后紧跟持久化类名 ➢ 例如: from Person from Person as p from Person p from ng.Object
注意: Hibernate中,查询的目标实体存在着继承关系。
5.5.1 .1 Query 接口
5.5.1 .14 子查询
如果底层数据库支持子查询,则可以在 HQL 语句中 使用子查询,与 SQL 子查询相似的是,HQL 中的子 查询也需要使用()
From Cat as cat where (, cat.color) is not in (select , c.color from DomesticCat c)
from Customers as customer inner join fetch customer.orders as order
在查询 Customers 对象的时候,默认只有 Customers 的内 容,并不包含 orders 集合的信息,在 Customers.hbm.xml 里设置lazy=“false”可以同时取出关联的所有 orders 内容. 但若既想要 hibernate 默认的性能又想要临时的灵活性,则 可以使用 fetch。总之,fetch就是在代码这一层给你一个主 动抓取得机会
5.5.1 .2 setXXX()方法
setXXX()方法:
➢ setString(int position,String value): ➢ setString(String paraName,String value):用于设置HQL
中”:”后跟变量的值;其中paramName代表HQL中”:”后跟变 量,value为该变量设置的值:
5.5 Hibernate 查询
Hibernate HQL HobernateTemplate
学习目标
HQL 查询
➢ Query 接口及其主要方法 ➢ Select 子句 ➢ 更新与删除 ➢ 引用查询 ➢ 联合查询 ➢ 子查询 ➢ 数据加载方式 ➢ Sql 查询 ➢ 分页查询
管理 Session HibernateTemplate
where 子句中,可以通过比较操作符指定甄选条件:=, <>, <, >, >=, <=, between, not between, in, not in, is, like. 可以通过 and, or等逻 辑运算符组合各个逻辑表达式。
5.5.1 .3 list()方法
返回查询结果,并把查询结果转变为 List 接口的实例: Query query = session.createQuery(“from User u where u.age > ?”); query.setInteger(0,22); List lt = query.list(); while(int i = 0; i < lt.size(); i++){ user = (User)lt.get(i); System.out.println(user.getUserName()); }
fetch 关键字只对 inner join 和 left join 有效。对于 right join 而言, 由于作为关联对象的 Customers 对象可能为 null,所以无法通过 fetch 关键字强制 Hibernate 进行集合 填充操作。这意味着只能对返回集合中的各个数组进行处理。
5.5.1 .13 fetch 例程
5.5.1 .6 更新与删除
通过 delete 和 update 子句可以进行数据的删除与更新:
5.5.1 .7 分组与排序
HQL 通过 order by 子句实现对查询结果的排序:
from User user order by , user.age desc 通过 group by 子句可以进行分组统计,通过 having 子
5.5.1 .12 inner join
inner join返回的结果集是两个表中所有相匹配的数据。
Hibernate 对应语句: from Customers as customer inner join customer.orders as order
5.5.1 .13 fetch
如果希望查询得到的是 Customers 对象。则应该在查询语句 中加上 fetch 关键字。
5.5.1 .911 right join right join返回 ”second_table” 中所有的行尽管
在 ”first_table” 中没有相匹配的数据。
Hibernate 对应语句:
from Customers as customer right join customer.orders as order
若只查询了一个属性。则返回的 List 数据结构中,每个条目都是一个相应 类型的数据
5.5.1 .5 select 子句
select子句:如果要查询两个以上的属性,查询结果会以数组的 方式返回,还可以将一个 object[] 中所有成员封装成一个对 象:
Query query = session.createQuery(“select new Student(,s.sex) from Student s”);
Query query = session.createQuery (“from User user where u.age > :minAge and erName
like :userName”); query.setInteger(“minAge”,22); query.setString(“userName”,”%Tom%”);
Query 接口用来执行 HQL,Query 接口实例可以从 Session 对象 session 中生成: Query query = session.createQuery(“from User u where erName like ?”);
相关文档
最新文档