企业关注技能知识点【Hibernate框架】

1、Hibernate框架主要解决什么问题?

Hibernate框架是一个ORM框架,即对象关系映射框架。

能够将Java类与关系数据表进行映射,同时提供面向对象的数据查询机制,能够最大程度缩短程序员在SQL和JDBC上的编程时间,

从大量的数据持久层编程工作中解脱出来。

参考:Hibernate快速入门



2、Hibernate属性文件主要包括哪些内容?

数据库访问的相关信息需要在Hibernate属性文件中配置,如数据库驱动类、连接串、用户名、密码、连接池初始化大小等。

也可以使用名字为hibernate.cfg.xml的xml文件配置属性。

参考:MyEclipse中开发Hibernate应用



3、Hibernate应用中的映射文件(hbm.xml)主要包括哪些内容?

映射文件中所有元素都存在于根元素hibernate-mapping下,其中使用最多的元素是class。

class元素下最常用的子元素有id、property、component、subclass、joine-subclass、union-subclass等。



4、Hibernate中持久化对象有哪三种状态?每种状态有什么特征?

1、瞬时状态(transient state)

当通过new操作符实例化了一个对象,而这个对象并没有被Session对象操作,也就是该对象没有与一个Session对象关联时,那么这个对象就称为瞬时状态对象。

瞬时状态的对象不能被持久化数据库中,也不会被赋予持久化标识(Identifier)。

也就是说瞬时状态的对象与普通对象没有区别,没有与数据库的记录有映射关系。

2、持久状态(persistent state)

如果一个对象与一个Session对象关联,例如被Session对象刚加载的、刚保存的、刚更新的,那么该对象就称为持久状态对象。

持久状态的对象与数据库中一条记录对应,并拥有持久化表示(Identifier)。

当持久状态对象有改变时,当前事务提交后,Hibernate会自动检测到对象的变化,并持久化到数据库中。

3、脱管状态(detached state)

当与持久状态对象关联的session关闭后,该对象就变成脱管状态(detached state)。

脱管状态的对象引用依然有效,可以继续使用。

当脱管状态的对象再次与某个Session关联后,脱管状态对象将转变为持久状态对象,托管期间进行的修改将被持久化到数据库中。

参考:Hibernate核心知识点



5、HQL语言与SQL语言有什么区别?

主要有以下三点区别:

①HQL语言镇南关出现的是类名、属性名;SQL语言中出现的是表名、字段名。

②HQL语言严格区分大小写;SQL语言不区分大小写。

③HQL语言理解继承、多态等面向对象的概念。



6、一对多/多对一关联主要有哪两种实现方式?

主要有以下两种实现方式:

①基于主外键的一对多/多对一关联:这种关联指的是从表通过外键参考主表的主键,从而实现关联。

②基于连接表的一对多/多对一关联:这种关联指的是两个表之间不直接关联,

而是把各自的主键存放到关联表中,维护二者的关联关系。

参考:Hibernate关联关系映射(一对多/多对一)



7、什么是Hibernate中的TPS?

TPS(Table Per Subclass)是Hibernate中一种实现集成映射的策略,即每个子类对应一张表,TPS使用<joined-subclass>元素配置子类映射关系。

参考:Hibernate 继承关系映射



8、什么是Hibernate中的TPH?

TPH(Table Per Class Hierarchy)是Hibernate中一种实现继承映射的策略,即每个子类对应的是表的一个分层结构。

TPH策略中,使用<subclass>来配置子类指定子类的区分字段值,同事配置子类扩展的属性。

参考:Hibernate 继承关系映射



9、什么是延迟加载?如何设置是哦福使用延迟加载?

延迟加载的意思是,当查询某个实例时,默认情况下不查询其关联的实例。

使用属性lazy可以设置是否使用延迟加载,lazy="true"表示使用延迟加载,lazy=“false”表示不实用延迟加载。

参考:Hibernate 性能提升


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值