当前位置: 首页 > 编程笔记 >

java中Hibernate面试知识点整理

白迪
2023-03-14
本文向大家介绍java中Hibernate面试知识点整理,包括了java中Hibernate面试知识点整理的使用技巧和注意事项,需要的朋友参考一下

作为常用的框架之一,Hibernate在面试的时候难免会被问到。好在涉及的都是一些理论方面的知识点,比如概念、原理、使用之类的。我们在面试之前可以针对这方面的题目,做一个充足的准备,即使有些人对hibernate框架的了解并不深入。下面我们就hibernate框架中常见的面试题带来介绍。

1. 为什么要使用 hibernate?

(1).对JDBC做了轻量级的封装,简化了数据访问层编码。

(2).Hibernate是一个ORM框架,开发者可以使用面向对象的思想操作数据库,使用更加方便。

(3) hibernate映射很灵活,支持各种关系数据库,从一对一到多对多的各种复杂关系。

2.比较hibernate的三种检索策略优缺点

(1)立即检索;

优点: 对应用程序完全透明,不管对象处于持久化状态,还是游离状态,应用程序都可以方便的从一个对象导航到与它关联的对象;

缺点:1.select语句太多;2.可能会加载应用程序不需要访问的对象白白浪费许多内存空间;

(2)延迟检索:

优点: 由应用程序决定需要加载哪些对象,可以避免可执行多余的select语句,以及避免加载应用程序不需要访问的对象。因此能提高检索性能,并且能节省内存空间;

缺点: 应用程序如果希望访问游离状态代理类实例,必须保证他在持久化状态时已经被初始化;

(3)迫切左外连接检索

优点:对应用程序完全透明,不管对象处于持久化状态,还是游离状态,应用程序都可以方便地冲一个对象导航到与它关联的对象。使用了外连接,select语句数目少;

缺点:可能会加载应用程序不需要访问的对象,白白浪费许多内存空间;复杂的数据库表连接也会影响检索性能;

3.什么是 ORM 框架?

(Object Relation Mapping)对象关系映射,即通过类与数据库表的映射关系,将对象持久化到数据库中。

4.hibernate对象的三种状态

Hibernate中对象有三种状态: 临时状态(Transient)、持久状态(Persistent)、游离状态(Detached)

临时状态:刚刚使用new语句创建,还没有被持久化,不处于Session的缓存中。处于临时状态的状态的Java对象被称为临时对象。

持久化状态:已经被持久化,加入到Session的缓存中。处于持久化状态的Java对象被称为持久化对象。

游离状态:已经被持久化,但不处于session的缓存中。处于游离状态的Java对象被称为游离对象。

5.Hibernate是如何延迟加载?

当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。

面试题扩展:

1.一般情况下,关系数据模型与对象模型之间有哪些匹配关系(多选)

A)表对应类

B)记录对应对象

C)表的字段对应类的属性

D)表之间的参考关系对应类之间的依赖关系

2.以下关于SessionFactory的说法哪些正确?(多选)

A)对于每个数据库事务,应该创建一个SessionFactory对象

B)一个SessionFactory对象对应一个数据库存储源。

C)SessionFactory是重量级的对象,不应该随意创建。如果系统中只有一个数据库存储源,只需要创建一个。

D)SessionFactory的load()方法用于加载持久化对象

3.元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)

A)none

B)save

C)delete

D)save-update

5.以下哪些属于Session的方法?

A)load()

B)save()

C)delete()

D)update()

E)open()

F)close()

到此这篇关于java中Hibernate面试知识点整理的文章就介绍到这了,更多相关java之Hibernate面试要点内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • Java / Android 笔试/面试/知识整理,主要内容包括 Java/Android/ios 方向的同学在找工作时遇到的笔试面试题目。

  • 这份笔试面试题比较全面,囊括了以下内容:计算机网络、数据结构与算法、体系结构与操作系统、数据库系统、编译原理、设计模式、版本控制、iOS 开发、Android 开发等。

  • 本文向大家介绍jQuery知识点整理,包括了jQuery知识点整理的使用技巧和注意事项,需要的朋友参考一下 slideUp();向上滑动//改变元素的高度的属性 直到高度为0从而将元素隐藏 slideDown(); slideToggle(); fadeOut();淡出//从不透明变透明 fadeIn() 在一个function函数中加入两个toggle函数实现语言的切换 可以给一个元素同时应用多

  • 本文向大家介绍JavaScript知识点整理,包括了JavaScript知识点整理的使用技巧和注意事项,需要的朋友参考一下 JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。 首

  • 【python】面试基础知识点整理 1、解释型和编译型语言的区别 2、数据类型的常用方法 3、简述 Python 中的字符串编码 4、打印九九乘法表 5、面向对象中__new__ 和 __init__ 区别 6、实现二分法查找函数 7、字符串格式化方式 8、实现一个简单的 API 9、实现一个斐波那契数列 10、冒泡排序 11、快速排序 python基础测试100题 1、解释型和编译型语言的区别

  • 本文向大家介绍JavaScript易错知识点整理,包括了JavaScript易错知识点整理的使用技巧和注意事项,需要的朋友参考一下 前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点。 JavaScript知识点 1.变量作用域 上方