资源描述
第三阶段题库(初稿)
1. 简述Hibernate?
a) Hibernate的中文意思是“冬眠”。Hibernate是采用ORM模式实现数据持久层的一个优秀的Java组件,它提供了强大、高效的将Java对象进行持久化操作的服务。
2. 什么是HQL语言?
a) HQL:Hibernate Query Language , hibernate查询语言。使用HQL让我们能够以面向对象的方式来查询数据库。
3. 什么是ORM?
a) Object - Relation Mapping:对象关系映射。
b) ORM提供了实现持久化的一种模式,它采用映射元数据类描述对象--关系的映射的细节。一般来说,一个持久化类对应一个表,类的每个实例对应表中的一条记录,类的属性对应表的字段。
4. 什么是映射文件?
a) 它的作用是描述持久层对象以及它们的属性。和数据库中的表和表的字段之间的对应关系。
5. <hibernate-mapping package=".shxt.model">中,package属性描述什么?
a) Package属性所描述的是这个文件中所使用的JAVA对象的包。系统会自动的从Package属性所定义的包中去查找相应的JAVA对象。
6. <class name="Student" table="STUDENT">中,name和table属性描述什么?
a) name属性描述的是对应的java类是谁。
b) table属性描述的是与之对应的数据库表是谁。
7. <id name="id" column="ID" type="string">标签表示什么含义,属性分别为什么?
a) 这个标签表示本字段为主键。
b) name属性表示实体类中属性名为id。
c) column属性表示数据库中对应的字段名为ID。
d) type属性表示此字段类型为字符串。
8. <generator class=“xxxx”/>指定什么?
a) 指定主键生成方式
9. <property name=“name” column=“NAME”/>描述什么?
a) 描述java对象的属性和表中字段的关系。
b) 属性name对应数据库里name字段。
10. hibernate常用主键生成方式?
a) assigned:主键由外部程序负责生成,无需Hibernate参与。
b) increment:主键按数值顺序递增。
c) identity:采用数据库提供的主键生成机制。
d) native:由Hibernate根据底层数据库自行判断采用identity、hilo、sequence其中一种作为主键生成方式。
e) uuid.hex:由Hibernate基于128 位唯一值产生算法生成16 进制数值(编码后以长度32 的字符串表示)作为主键。
f) uuid.string:与uuid.hex 类似,只是生成的主键未进行编码(长度16)。
g) foreign:使用外部表的字段作为主键。
h) sequence:使用序列作为主键(Oracle)。
i) Hilo:使用高低位算法生成主键,高低位算法使用一个高位值和一个低位值,然后把算法得到的两个值拼接起来作为数据库中的唯一主键。
11. 在hibernate配置文件中,方言起什么作用?
a) 根据用户指定的方言,hibernate会使用针对该数据库的sql语句来操作数据库。
12. Configuration接口的作用?
a) Configuration对象用于配置并且启动Hibernate。
b) Hibernate应用通过Configuration实例来指定对象-关系映射文件的位置来配置Hibernate的属性,然后创建SessionFactory实例。
c) Configuration对象只存在于系统的初始化阶段,然后所有的持久化操作都通过一SessionFactory实例来进行。
d) Configuration configuration = new Configuration().configure();
13. SessionFactory接口的作用?
a) SessionFactory实例的主要作用是生成Session对象,通常情况下,一个应用程序只有一个SessionFactory的实例并且SessionFactory的实例是不可以进行改变的。
b) SessionFactory sessionFactory = configuration.buildSessionFactory();
14. Session接口的作用?
a) 这是Java应用程序和Hiberante进行交互时所使用的主要接口,这也是持久化操作的核心API。
b) Session的主要功能是读取、创建和删除映射的实体对象的实例。这一系列的操作将转化为对象对数据库表中的数据的增加、修改、查询和删除的操作。
c) Session session = sessionFactory.openSession();
15. Session接口的常用方法?
a) save() ,delete() ,update() ,get() ,load()
16. Transaction接口的作用?
a) Transaction接口主要用于事务管理,用户可以使用Transaction对象来定义自己的原子操作。
b) Transaction tx = session.beginTransaction();
17. Query接口的作用?
a) 在Hibernate中,是通过Query接口来执行HQL语句并完成对象的检索操作的。
b) Query query = session.createQuery();
18. Hibernate实体对象的生命周期?
a) 实体对象的生命周期中主要存在三种不同的状态,它们分别是:
瞬时:数据库中没有关联的数据与它对应,一般是new出来并与session没有关联的对象。持久:在数据库中有数据与它对应,与当前session有关联,并且关联的session没有关闭, 事务没有提交。持久对象发生改变时,hibernate能检测得到。
游离:在数据库中有数据与它对应,没有session与它关联,托管对象发生变化时hibernate不能检测得到。
19. 什么是瞬态对象?
a) 所谓瞬态,表示该实体对象在内存中是自由存在的,也就是说与数据库中的数据没有任何关系。该实体从未与任何持久化上下文关联过,它没有持久化标识(相当于主键)。
20. 什么是持久态对象?
a) 所谓持久态,是指该实体对象处于Hibernate框架所管理的状态,也就是说这个实体对象就是与Session对象的实例相关的。
b) 处于持久态的实体对象的最大特征是对其所做的日呢和变更操作都将被Hibernate持久化到数据库中。
21. 什么是游离态对象?
a) 所谓游离态,是指处于Persistent状态的对象,当不再与它所对应的Session对象相关联时,这个对象就变成了游离态。
22. HQL语言是否区分大小写?
a) HQL语言不区分大小写,但对于对象和属性的名字则必须区分大小写。
23. 什么是QBC检索?
a) QBC检索(Query By Criteria):一种符合java编写习惯的查询API,支持在运行时动态生成查询语句。
24. Hibernate中有几种缓存?分别是什么?
a) 两种。
b) 一级缓存和二级缓存。也称为内置缓存和外置缓存。
25. 什么是一级缓存?
a) 一级缓存在Session中实现,当检索数据时,数据缓存在session中,当再次检索时,直接从session中读取,不必再次查询数据库,当Session关闭时一级缓存就失效了。
b) 一级缓存由Hibernate来进行维护,一般不需要我们使用手工干预。
26. 什么是二级缓存?
a) 在Hibernate中二级缓存在SessionFactory中实现,由一个SessionFactory的所有Session实例所共享。Session在查找一个对象时,会首先在自己的一级缓存中进行查找,如果没有找到,则进入二级缓存中进行查找,如果二级缓存中存在,则将对象返回,如果二级缓存中也不存在,则从数据库中获得。hibernate并未提供二级缓存的产品化实现,我们需要第三方组件实现二级缓存的功能。
27. 什么是延迟加载?如何配置?
当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。Hibernate2延迟加载实现:a)实体对象 b)集合(Collection), Hibernate3 提供了属性的延迟加载功能
a) 当某个属性的lazy属性被配置为true时,当查询数据库时不会立即加载该属性,而是在使用的时候再加载,这就是延迟加载。
b) 当某个属性需要延迟加载时,为该属性配置lazy=”true”即可。默认为true。
28. set集合的inverse属性作用?
a) Inverse属性的作用是是否将对集合对象的修改反映到数据库中。也就是说当inverse=“false”时,对集合对象的修改会被反映到数据库中,而inverse=“true”时则不会对数据库进行相应的处理。
b) 也可以换个角度来理解,inverse属性的作用为设置对象之间关联关系的维护方在哪一端。当inverse=“false”时,标识对象之间的关联关系由本方来进行维护。而当inverse=“true”时则表示对象之间的关联关系由关联的另一方来进行维护。
29. 什么是javascript?
a) javascript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。
30. 什么是AJAX?
a) AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
31. 使用AJAX有什么优点?有什么缺点?
a) 使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,避免了无修改数据的反复传输。
32. JQuery是什么?
a) jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。
b) jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。
c) jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
展开阅读全文