Hibernate笔记
需积分: 0 64 浏览量
更新于2012-08-12
收藏 278KB DOCX 举报
【Hibernate关联映射】
在Java开发中,Hibernate作为一种流行的ORM(对象关系映射)框架,提供了将数据库操作转化为面向对象的方式。关联映射是Hibernate中关键的概念,它允许我们在对象模型和数据库表之间建立关系。
A. 单向N-1关联
这种关联通常代表一种“一对多”的关系,例如,一个人可以有多个地址。在Hibernate中,我们可以通过在N的一端(通常是拥有集合的一方)使用`<many-to-one>`元素来实现这种关联。对于无连接表的N-1关联,我们可以在实体类的`Person`中添加`Address`对象,并在配置文件中设置`<many-to-one>`标签,指定外键列。而有连接表的N-1关联则需要使用`<join>`元素,通过连接表来建立关联。
B. 单向1-1关联
这种关联表示“一对一”的关系。在基于外键的1-1关联中,只需在`<many-to-one>`元素上添加`unique="true"`属性。对于基于主键的1-1关联,我们可以使用`<one-to-one>`元素,让两个实体的主键互相引用。
C. 单向1-N关联
单向1-N关联意味着一个实体可以有多个其他实体实例,这通常通过`<set>`或`<bag>`元素实现。在1的一端定义一个集合,如`Set<Address>`,并使用`<one-to-many>`元素指定关联的外键列。对于无连接表和有连接表的1-N关联,配置方式略有不同。
D. 单向N-N关联
N-N关联表示“多对多”的关系,需要通过连接表来建立。单向N-N关联与1-N关联类似,但在控制端增加一个Set类型的属性,但没有`unique="true"`属性,因为多对多关系允许重复的关联。
【Hibernate批量处理】
批量处理能提高数据操作效率,减少数据库交互次数。在Hibernate中,批量处理主要包括插入和更新。
A. 批量插入
批量插入时,可以使用for循环来创建和保存对象,为了防止内存溢出,可以在满足特定条件时调用`session.flush()`将缓存中的对象持久化到数据库,然后通过`session.clear()`清除缓存。
B. 批量更新
批量更新通常使用HQL(Hibernate Query Language)来完成,通过编写更新语句并执行,可以一次更新多条数据。
【HQL(Hibernate Query Language)】
HQL是面向对象的查询语言,类似于SQL,但它操作的是类、实例和属性。使用HQL进行查询的基本步骤如下:
A. 获取Hibernate Session对象,这是与数据库交互的主要接口。
B. 编写HQL查询语句,它支持类名、对象实例名和属性名称。
C. 使用Session的`createQuery`方法,将HQL语句转换为Query对象。
D. 如果查询语句含有参数,可以通过`Query`对象的`setXxx`方法设置参数值。
E. 调用`Query`对象的`list`等方法执行查询并获取结果列表。
Hibernate通过关联映射、批量处理和HQL等特性,极大地简化了Java应用程序与数据库之间的交互,使得开发人员能够更加专注于业务逻辑,而不是底层的SQL操作。

chenpeizhe
- 粉丝: 1
- 资源: 15
最新资源
- FLAC3D中基于参数方程的心形隧道开挖数值模拟及应用
- 这是一份资源啊啊啊啊啊啊啊
- linux查看目录被进程占用空间,Linux df和du命令查看磁盘空间使用不一致的解决方法.rtf
- windows server 2008 r2升级server pack1安装
- Ceph学习三部曲之三-迁移之美-PG读写流程与状态迁移详解
- 基于卷积神经网络(CNN)实现的猫狗分类系统源代码+数据集+详细项目文档
- 华为SOA架构在智能汽车领域的创新应用及其优势
- tomcat安装及配置教程.md
- 2023年1-6月抖音快手美妆消费市场报告-果集数据.pdf
- 使用el-table 作的 任务横道图 表格 适用于复杂数据 在大屏里面的显示
- tomcat安装及配置教程.md
- 工业自动化中Smart200 PLC控制V90伺服电机的绝对定位与速度控制及PN通信调试
- tomcat安装及配置教程.md
- tomcat安装及配置教程.md
- 2023年1-6月房地产开发运行情况解读-58安居客研究院.pdf
- tomcat安装及配置教程.md