Hibernate杂问

简介: 1 谈谈你对ORM框架的基本思想的了解?    首先 ORM是 对象关系映射,是为了解决类似于JDBC实现对象持久化的问题开发的。     框架的基本特征:完成面向对象的编程语言到关系数据库之间的映射。

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()方法一定要得到真实的数据。

 

相关文章
|
3月前
|
Java 数据库连接 API
|
12月前
|
SQL Java 关系型数据库
Hibernate的使用总结
Hibernate的使用总结
63 0
|
SQL 存储 Java
Hibernate
Hibernate
66 0
|
SQL Java 数据库连接
|
Java 数据库连接
|
Java 数据库连接 数据库
|
关系型数据库 Java 数据库连接
|
SQL Java 数据库连接
|
SQL Java 数据库连接
Hibernate初识
简介 相信学过SSH2框架的同学们对Hiberate一点也不陌生。Hibernate是Gavin King于2001年开始,作为EJB2风格实体bean的替代品开发的对象关系映射工具。
1232 0
|
关系型数据库 Java MySQL
Hibernate之开门见山
1:SSH框架:   Struts2:基于mvc模式的应用层框架模式(Servlet层)   Hibernate:基于持久层的框架(数据访问层)   Spring:创建对象对象处理的依赖关系以及框架整合(Service层) 2:框架和之前学的对比MVC分层模式: 搭建Hiberna...
1228 0