1.Hibernate的检索方式
答:①导航对象图检索 ②OID检索 ③HQL检索 ④QBC检索 ⑤本地SQL检索
2. Forward与Global-Forward的区别
答:Forward是根据Action return的值找到对应的JSP页。当多个Action共同return同一个值时,可将这个Forward元素写在Global-Forward中。
3.持久化对象的三种状态,代表含义。
答: 临时状态——刚用new语句创建,未被持久化,不处于session的缓存中。
持久化状态——已经被持久化,处于session的缓存中。
游离态——已经被持久化,但不处于session的缓存中。
5、映射继承关系的三种方式?P 424
答:(1)继承关系树的每个具体类对应一张表:在具体类对应的表中,不仅包含和具体类属性对应的字段,还包括与具体类的父类属性对应的字段。
(2)继承关系树的根类对应一张表:在根类对应的表中,不仅包括根类属性对应的字段,
还包括根类的所有子类属性对应的字段。
(3)继承关系树中的每个类对应一张表,每个表中只包括和这个类本身属性对应的字段,子类的表参照父类对应的表。
6、Session的find()方法以及Query接口的区别。
答案Session类的find()方法以及Query接口都支持HQL检索方式。这两者的区别在于,前者只是执行一些简单HQL查询语句的便捷方法,
它不具有动态绑定参数的功能,而且在Hibernate3.x版本中,已经淘汰了find()方法;而Query接口才是真正的HQL查询接口,它提供
了以上列出的各种查询功能。
9.list要的实现类有那些? 并按照存储结构、机制简单的说一下。
LinkedList、ArryList、Vector。
LinkedList 采用链表数据结构、ArryList代表大小可变的数组。
Vector与ArryList功能比较相似,区别在于Vector采用同步、ArryList没有采用。
10:以下哪个不是Hibernate的检索方式:
A、导航对象图检索 B、OID检索 C、ORM检索
D、QBC检索 E、本地SQL检索 F、HQL检索
答案:C
11.持久化类的类名是Customer.java,写出相应的映射文件名 。
答案:Customer.hbm.xml
13. Session接口是Hibernate应用使用最广泛的接口。Session也被称为持久化管理器,它提供了和持久化相关的操作,
如添加、更新、删除、加载和查询对象。
14.请简述Session的特点有哪些?
答案:
(1)不是线程安全的,因此在设计软件架构时,应该避免多个线程共享同一个Session实例。
(2)Session实例是轻量级的,所谓轻量级是指它的创建和销毁不需要消耗太多的资源。这意味着在程序中可以经常创建或销毁Session对象,
例如为每个客户请求分配单独的Session实例,或者为每个工作单元分配单独的Session实例。
(3)在Session 中,每个数据库操作都是在一个事务(transaction)中进行的,这样就可以隔离开不同的操作(甚至包括只读操作)。
12、Hibernate中采用XML文件来配置对象-关系映射的优点有那些?
答案:Hibernate既不会渗透到上层域模型中,也不会渗透到下层数据模型中。软件开发人员可以独立设计域模型,不必强迫遵守任何规范。
数据库设计人员可以独立设计数据模型,不必强迫遵守任何规范。对象-关系映射不依赖于任何程序代码,如果需要修改对象-关系映射,
只需修改XML文件,不需要修改任何程序,提高了软件的灵活性,并且使维护更加方便。
13、在Hibernate应用中Java对象的状态有哪些?
答案:
1临时状态(transient):刚刚用new语句创建,还没有被持久化,不处于Session的缓存中。处于临时状态的Java对象被称为临时对象。
2持久化状态(persistent):已经被持久化,加入到Session的缓存中。处于持久化状态的Java对象被称为持久化对象。
3游离状态(detached):已经被持久化,但不再处于Session的缓存中。处于游离状态的Java对象被称为游离对象。
14、 叙述Session的缓存的作用
答案:
(1)减少访问数据库的频率。应用程序从内存中读取持久化对象的速度显然比到数据库中查询数据的速度快多了,因此Session的缓存可以
提高数据访问的性能。
(2)保证缓存中的对象与数据库中的相关记录保持同步。当缓存中持久化对象的状态发生了变换,Session并不会立即执行相关的SQL语句,
这使得Session能够把几条相关的SQL语句合并为一条SQL语句,以便减少访问数据库的次数,从而提高应用程序的性能。
16、 多个事务并发运行时的并发问题有哪些?
答案 第一类丢失更新;脏读;虚读;不可重复读;第二类丢失更新;
18、session的清理和清空有什么区别?
session清理缓存是指按照缓存中对象的状态的变化来同步更新数据库;清空是session关闭;