使用Hibernate开发租房系统(5)

本文详细介绍Hibernate ORM框架的应用实践,包括实体类创建流程、查询方法、对象状态管理等核心概念,并对比了不同查询方式的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hibernate创建实体类步骤:
(1)引入hibernate的支持库 oracle数据库的驱动 ojdbc14.jar(10g) ojdbc6(11g)
(2)建立hibernate.cfg.xml文件 这个文件必须位于src目录下
(3)建立对应的实体映射文件*.hbm.xml *类名
(4)将实体映射文件 注册到hibernate.cfg.xml

get load方法
(1)两者均是根据id查询出单个对象
(2)如果能找到 二者没什么区别
(3)如果找不到 get返回的是null load会抛出异常

瞬时状态
a.对象在内存中
b.对象不在session的托管中
c.数据库不存在对象的对应记录

持久状态
a.对象在session的托管中
b.数据库存在对象的对应记录

游离状态
a.对象不在session的托管中(曾经被session托管)
b.数据库存在对象的对应记录

session.flush(); 内容中的对象和一开始从session中提取的对象 完成一次对比匹配 如果不匹配 session将完成一次同步操作
但是这个同步操作 是不提交的
transaction.commit(); 代码中已经存在 上述功能

hibernate根据主键才能干活

saveOrUpdate
merge:
两者相似点在于:处理对象 查询数据库是否有对应记录 有就修改 没有保存
merge会完成所有session的一个同步操作

list:无论如何都会发出一条语句查询全部信息
iterate:首先发出一条查询所有id的语句 然后再根据这些id逐条查询 N(数据库的记录数)+1

占位符
?:从0开始 (过于局限 不适用)
命名参数占位: 使用:名字
封装对象占位:依赖于命名参数占位 (将所有的查询条件的属性 封装成对象)
对象中的属性名 一定要和命名参数的占位名一致
使用Map对象作为封装对象
map中的键要和 命名参数的占位名一致

投影查询:
查询一个对象OR多个对象中的某一个属性OR某几个属性
返回 如果是一个 返回是Object
如果是多个 返回时Object[]

转载于:https://www.cnblogs.com/a2367763409/p/6649364.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值