工具关系映射(Object Relational Mapping)模式是一种为理解决面向工具与关系数据库存在的互不匹配的征象的技能。
大略来说,ORM是通过利用描述工具和数据库之间映射的元数据,将程序中的工具自动持久化到关系数据库中。
传统如何实现持久化:1、采取硬编码办法,为每一种可能的数据库访问操作供应单独的方法,2、ORM供应了对数据库的映射,不用sql直接编码,能够像操为难刁难象一样从数据库得到数据。
ORM核心原则:1、大略:以最基本的形式建模数据。
2、传达性:数据库构造被任何人都能理解的措辞文档化。
3、精确性:基于数据库模型创建精确标准化的构造。
ORM技能特点:1、提高开拓效率。
由于可以自动对entity工具与数据库中的table进行字段与属性的映射,以是我们实际可能已经不须要一个专用的、弘大的数据访问层。
ORM缺陷:利用ORM所天生的代码一样平常不太可能写出很高效的算法,性能会受影响。

102.Hibernate 与 JPA 差异在哪?

在谈论Hibernate与Jpa的关系是,首先要明确Jpa的用场。
JPA全称为Java Persistence API ,Java持久化API是Sun公司在Java EE 5规范中提出的Java持久化接口。
JPA吸取了目前Java持久化技能的优点,旨在规范、简化Java工具的持久化事情。
利用JPA持久化工具,并不是依赖于某一个ORM框架。
与Jpa干系的便是这个ORM技能,ORM 是Object-Relation-Mapping,即工具关系影射技能,是工具持久化的核心。
ORM是对JDBC的封装,从而办理了JDBC的各种存在问题:知道Jpa是一种规范,而Hibernate是它的一种实现。
除了Hibernate,还有EclipseLink(曾经的toplink),OpenJPA等可供选择,以是利用Jpa的一个好处是,可以改换实现而不必改动太多代码。

103.什么是

1.

一样平常而言说n+1意思是,无论在一对多还是多对一当查询出n条数据之后,每条数据会关联的查询1次他的关联工具,这就叫做n+1。
本来所有信息可以一次性查询出来,也便是大略的连表查询,但是Hibernate会首先查询1次得到当前工具,然后当前工具里面的n个关联工具会再次访问数据库n次,这便是1+n问题。
Hibernate给出了3中办理方案,1.延迟加载,当须要的时候才查询,不须要就不查询,但是觉得这种办法治标不治本,尤其是在那种报表统计查询的时候更为明显。
2.fetch=\公众join\"大众,默认是fetch=\公众select\"大众,这个实在说白了便是一个做外连接,许可外键为空的情形之下。
3.二级缓存,第一次查询之后存在内存中,后面的相同查询就快了。
但是有2个缺陷:二级缓存首先是有点摧残浪费蹂躏内存空间,如果多了的话摧残浪费蹂躏还比较严重,

105.简介下 Hibernate Session 与 SessionFactory。

怎么断开jsp与数据库的链接撩课Java面试宝典第十四篇 Ruby

Session接口卖力实行被持久化工具的CRUD操作CRUD的任务是完成与数据库的互换,包含了很多常见的SQL语句。
须要把稳的是,Session工具是非线程安全的,同时,Hibernate的Session不同于JSP运用中的HttpSession。
这里当利用Session这个术语时,实在指的是Hibernate中的Session,而往后会将HttpSession工具称为用户Session。
SessionFactory接口卖力初始化Hibernate。
它充当数据存储源的代理,并卖力创建Session工具。
这里用到了工厂模式。
须要把稳的是,SessionFactory并不是轻量级的,由于一样平常情形下,一个项目常日只须要一个SessionFactory就够,当须要操作多个数据库时,可以为每个数据库指定一个SessionFactory。