1 谈谈你对ORM框架的基本思想的了解?

首先 ORM是 对象关系映射,是为了解决类似于JDBC实现对象持久化的问题开发的。

框架的基本特征:完成面向对象的编程语言到关系数据库之间的映射。

他的映射分为三种:数据库表映射类;数据库表的行映射对象(new);数据库表的列(字段)映射对象属性。

然后 ORM框架 是由实体类+xml文件组成的。

最后 ORM框架 就是把关系型数据库包装成面向对象的模型。

2 说说你知道的 Hibernate核心的API?

1 Configuration接口:用于Hibernate配置。

2 SessionFactory接口:用来产生Session对象。

3 Session接口:提供对数据库持久对象进行操作的方法。

4 Transaction接口: Hibernate事务是对底层具体的JDBC、JTA、以及CORBA事务的抽象。

5 Query接口:对数据库及持久层对象的查询。

6 Criteria接口:创建并执行面向对象的标准化查询。

3 理解API操作实体域对象,Hibernate中的三种状态?

三种状态为:瞬时状态;持久状态;游离状态。

瞬时状态:new一个对象后,这个对象就是出于瞬时状态。

持久状态:持久化对象都必须与指定的Hibernate Session关联,在当前操作执行完成时将对象数据写回数据库。

游离状态:先处于持久状态,关闭Session后,处于游离状态。

4 Hibernate所提供的查询对象的方式:?

1 OID查询:

2 HQL查询:

3 条件查询:

4 离线条件查询:

5 本地SQL查询:

5 Hibernate缓存:(这个很重要!!)

Hibernate缓存提供了两种缓存:一级缓存和二级缓存。

1 一级缓存又称事务级缓存,Session的缓存。

在Hibernate中一级缓存存是基于Session的生命周期实现的,每一个Session会在内部维护一个数据缓存,她随着Session的创建而创建,销毁而销毁。

一级缓存是必须的,在同一个一级缓存中,每一个持久化类的对象都是唯一的(都有唯一的OID)。

2 二级缓存又称应用级缓存 SessionFactory的缓存 。

在Hibernate中二级级缓存是由SessionFactory实现,所有用一个SessionFactory创建的Session对象共享此缓存。

由于SessionFactory对象的生命周期和应用程序的整个过程对应,因此Hibernate二级缓存是进程范围或者集群范围的缓存,有可能出现并发问题,因此需要采用适当的并发访问策略,该策略为被缓存的数据提供了事务隔离级别。

第二级缓存是可选的,是一个可配置的插件,默认下SessionFactory不会启用这个插件。

什么样的数据适合存放到第二级缓存中?   
  1) 很少被修改的数据   
  2) 不是很重要的数据,允许出现偶尔并发的数据   
  3) 不会被并发访问的数据   
  4) 常量数据   
不适合存放到第二级缓存的数据?   
  1) 经常被修改的数据   
  2) 绝对不允许出现并发访问的数据,  
  3) 与其他应用共享的数据。

6 Session接口的get()和load()方法的区别:

load()方法:创建是首先查询Session,然后产生代理对象,当实际使用数据的时候,才去查询二级缓存和数据库。

get()方法:首先查询session,没有的话查询二级缓存,最后查询数据库。get()方法一定要得到真实的数据。

7

Hibernate杂问相关推荐

  1. qPCR实验疑难杂问解答

    看了别人文献里的PCR方法,照搬了人家的引物,还是做得每次结果都不一样?不是Ct值出现过晚,就是扩增曲线变化很奇怪,总是操作过程中时不时有这样或者那样的问题,遇到这些问题怎么处理呢?实践出真知,今天给 ...

  2. hibernate mysql 多表查询_查询hibernate表程序

    Hibernate初识 简介 相信学过SSH2框架的同学们对Hiberate一点也不陌生.Hibernate是Gavin King于2001年开始,作为EJB2风格实体bean的替代品开发的对象关系映 ...

  3. python爬取网页内容requests_[转][实战演练]python3使用requests模块爬取页面内容

    本文摘要: 1.安装pip 2.安装requests模块 3.安装beautifulsoup4 4.requests模块浅析 + 发送请求 + 传递URL参数 + 响应内容 + 获取网页编码 + 获取 ...

  4. 关于标题的多HTML定制

    Tech ed 2007上关于 MOSS的杂问诊治那个讨论上有一个内容就是如何做一个有样式的标题,除了讲师所讲的一个方法之外,他是把内容搜索部件的web part导出,修改再导入,其实不通过改编程,也 ...

  5. ssh 提示Connection closed by * 的解决方案

    使用ssh方式连接linux系统时,发现一直上报这个错误,重启了sshd服务之后,只能登陆一次就无法登录: # 出现问题的机器执行[root@localhost ~]# service sshd re ...

  6. kubernetes之容器探针(liveness and readiness probe)

    1.为什么需要容器探针 只要将pod调度到某个节点,Kubelet将运行pod的容器,如果该pod的容器有一个或所有的都终止运行(容器的主进程崩溃),Kubelet将重新启动容器,那么即使应用程序本身 ...

  7. Linux压力测试工具—Siege命令

    1.简介 Siege是一款开源的压力测试工具,设计用于评估WEB应用在压力下的承受能力.可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重 ...

  8. 中高端Android开发人才进,享学课堂忠实陪伴,让学习成为一种享受

    今天为大家推荐的是享学课堂最新出品的Android安卓移动互联网架构开发课程,包含音视频.Kotlin.Jetpack.Flutter等技术讲解与源码解析,在理论讲解的过程中穿插实战项目,每个知识点都 ...

  9. 十年建站老司机带你十分钟搭建网站

    十年建站老司机带你十分钟搭建网站 本文概要: 1. 域名 + 域名注册 + 域名备案 + 域名解析绑定 2. 服务器 + 虚拟主机 + windows服务器 + linux服务器 3. CMS建站系统 ...

最新文章

  1. C语言register关键字—最快的关键字
  2. HDU2076 夹角有多大
  3. bootstrap 全局 CSS 样式
  4. Teddy's Knowledge Base--基于.Net 2.0 (C# 2.0, ASP.NET 2.0)的快速开发框架设计NBear V2.0.0 [开源]...
  5. 在移动了用户数据时Android平台的路径设置
  6. SAP 电商云 Spartacus UI Proxy Facade 的一个实际例子
  7. 【Halcon】Halcon与OpenCV介绍、比较
  8. 深度揭秘“蚂蚁双链通”
  9. 我正在参加年度博客之星评选,请大家访问活动页面,帮我投票打分
  10. 编程语言和shell编程的基础内容以及grep、egrep命令及相应的正则表达式和用法...
  11. 很有用的SQLServer全局变量
  12. kali linux系统介绍
  13. 战神引擎清理数据教程[保留跟不保留账号
  14. oracle裁员原因_导致Oracle全球性裁员的原因有哪些?
  15. Minecraft安装资源包
  16. [转贴]IE中 无法打开internet站点 。。。。。
  17. orocos KDL 由位置计算力矩
  18. Amazon Alexa系列介绍(3)--Alexa Voice Service API介绍
  19. 用户注册+登录(下)
  20. CTF Series Forensics

热门文章

  1. Oracle - 安装 Oracle Database 11g Release 2
  2. 华为机考题 004字符串分割
  3. Codeforces Round #313 (Div. 1) C. Gerald and Giant Chess DP
  4. Android_Service组件详解
  5. 步步为营:Asp.Net序列化与反序列化
  6. Java之transient关键字
  7. 横跨7个版本的OpenStack无感知热升级在360的落地与实践
  8. ceph基本架构及数据分布原理
  9. 奇虎360WEB平台部招贤纳士之产品经理、开发工程师
  10. jinfo-jvm参数信息工具