Hibernate框架数据库操作

表与表之间的关系

一对一 (使用一张表即可达到效果)

使用一张表即可达到效果

一对多

客户和联系人 ---> 一对多关系 (一个客户有多个联系人)

  • 客户 : 与公司有业务往来,百度,新浪,360
  • 联系人 :公司里的员工
一对多

创建实体类

客户类
联系人类

配置一对多映射

one-to-many
many-to-one
级联添加
级联删除
级联修改

inverse属性

(1) 因为Hibernate中双向维护外键,因此级联操作时会重复操作外键,影响效率
(2) 解决方式:让其中一方不维护外键(让“一”的一方放弃维护外键)
(3)具体实现:


使用inverse属性

多对多


多对多
多对多建表

多对多
Role配置
User配置

多对多添加:

添加配置
添加代码

多对多删除(一般不进行这样的操作,可通过修改对三张表来维护关系)

删除配置
删除代码

维护第三张表

维护第三张表
添加角色
删除角色

Hibernate 多种查询方式

Hibernate多种查询方式

对象导航查询

对象导航查询

oid 查询

oid 查询

hql 查询

hql 查询
hql查询
hql条件查询
模糊查询
排序查询
分页查询

投影查询:(查询部分字段的查询成为投影查询)

投影查询
投影查询

聚集函数查询


聚集函数查询
聚集函数查询

QBC 查询

QBC查询所有
QBC 条件查询
条件api
QBC排序查询
QBC分页查询
QBC统计查询
离线查询
内链接查询:查询出两张表关联的数据,未关联的数据无法查出
内链接查询
左外链接(显示左边表的全部数据,右边表的关联数据)
左外链接
右外链接(显示右边表的全部数据,左边表的关联数据)
右外链接
hql 多表查询
多表查询类型
内连接查询
迫切内连接查询
左外连接
左外连接查询
左外迫切连接

查询策略

查询策略

延迟查询分类两类:

  • 类级别延迟: 根据id查询返回实体对象,调用load方法不会马上发送语句

  • 关联级别延迟 : 查询关联数据时进行延迟(Hibernate 默认已做延迟处理)

延迟策略
及其懒惰
批量抓取( 查询出客户后又需要查询每个客户的联系人,通过配置 batch-size 可已提高查询效率,减少查询此时 )
批量抓取优化查询次数
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容