2024年Hibernate笔试历年真题荟萃含答案_第1页
2024年Hibernate笔试历年真题荟萃含答案_第2页
2024年Hibernate笔试历年真题荟萃含答案_第3页
2024年Hibernate笔试历年真题荟萃含答案_第4页
2024年Hibernate笔试历年真题荟萃含答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2024年Hibernate笔试历年真题荟萃含答案(图片大小可自由调整)第1卷一.参考题库(共30题)1.Criteria查询通过面向对象化的设计将数据查询条件封装为一个对象,下列写法正确的是()A、AB、BC、CD、D2.如何优化Hibernate查询性能?3.级联删除时,cascade属性是()。A、  allB、  saveC、  deleteD、  save-update4.在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是()A、配置客户和订单关联的cascade属性为save-updateB、配置客户和订单关联的cascade属性为allC、设置多对一关联的inverse属性为trueD、设置多对一关联的inverse属性为false5.J2EE中,包含有Web工程和EJB工程的项目,打包封装成()文件A、jarB、warC、earD、zip6.Hibernate对JDBC访问数据库的代码进行了封装,从而大大的简化了数据访问层的代码,它是针对三层架构中()的解决方案。A、  表现层B、  业务逻辑层C、  持久化层D、  数据库系统7.在Hibernate中,下面代码实现了对Book实体中title属性的模糊查询,则下列选项中说法正确的是() A、 第(1)行,Book与model之间必须有as关键字B、 第(2)行,没有错误C、 第(3)行应该为:query.setString(0, "java");D、 第(4)行应该为:List llist = query.executeQuery();8.简述Collection和Collections的区别。9.简述Hibernate与spring的联系10.hibernate中Criteria和DetachedCriteria的作用是什么?11.状态SessionBean和无状态SessionBean的区别说法正确的是()A、无状态Session Bean要保存客户端的状态,同客户端是一对一B、有状态Session Bean要保存客户端的状态,同客户端是一对一C、他们都要保存客户端的状态,同客户端是一对一D、以上说法都不对12.三层结构是一种典型的应用软件分层结构,这三层分别是()A、表述层B、业务逻辑层C、控制层D、数据层13.两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对?14.一般情况下,关系数据模型与对象模型之间有哪些匹配关系()A、表对应类B、记录对应对象C、表的字段对应类的属性D、表之间的参考关系对应类之间的依赖关系15.DetachedObject(游离对象)有什么好处16.实体Bean中至少需要注入一下那两个注记()A、EntityB、TableC、StatefulD、Stateless17.下面关于Hibernate中Session的说法正确的是()A、Session是轻量级的,可以随意的创建和销毁B、Session是重量级的,不能随意的创建和销毁C、Session是线程安全的D、Session不是线程安全的18.JDBC,hibernate分页显示怎么实现?19.下面一对多关联的配置中,存在哪些错误()A、inverse属性不可以设置为falseB、cascade属性不可设置为trueC、class="com.x.entity.Order"应为type="com.x.entity.Order"                    D、column属性不可再<one-to-many>节点内设置20.下面关于Hibernate映射文件配置中dynamic-update属性说法正确的是()A、动态的修改,如果为true,只改变有改变的属性B、动态的修改,如果为true,只改变没有改变过的属性C、动态的修改,如果为true,改变所有的属性D、以上说法都错21.可以把结果集映射的信息放在外部的()元素中,这样就可以在多个命名查询间或者通过setResultSetMapping()API来访问A、<resultset>B、<result>C、<mapping>D、<description>22.下面的代码对应的HQL语句是() A、String hql = "from Dept";B、String hql = "from Dept as model";C、String hql = "from Dept as model where model.createDate =’createDate’";D、String hql = "from Dept as model order by model.createDate asc";23.在J2EE中,Servlet和JSP组件必须在()容器中才能运行A、AppletB、客户端C、WebD、EJB24.在源代码中嵌入映射信息需要()A、AnnoationB、hbm.xmlC、struts.xmlD、web.xml25.下列创建序列的SQL语句: 序列seq1的生成的值已经到最大值200,再执行下列语句: SELECTseq1.nextvalFROMdual; 下列显式正确值的选项是()。A、1B、10C、100D、报错26.以下检索策略中,()利用了外连结查询A、立即检索B、延迟检索C、迫切左外连结检索D、迫切右外连结检索27.简述使用Hibernate完成持3久化操作的3个准备和7个步骤。28.评估CREATETABLE语句: 下列关于prod_id_pk选项正确的是()。A、可以被创建,但需要唯一索引用手工创建B、可以被创建并且会自动创建唯一索引C、可以被创建并且会自动创建非唯一索引D、可以被创建但不可以使用,因为没有指定索引29.Hibernate对象从临时状态到持久状态转换的方式有?()A、调用session的save方法B、调用session的close方法C、调用session的clear方法D、调用session的evict方法30.简述Hibernate的优点和缺点?第1卷参考答案一.参考题库1.参考答案:D2.参考答案: 1 )lazy=true,hibernate3开始已经默认是lazy=true了;lazy=true时不会立刻查询关联对象,只有当需要关联对象(访问其属性,非id字段)时才会发生查询动作。 2)二级缓存,在对象更新,删除,添加相对于查询要少得多时,二级缓存的应用将不怕n +1问题,因为即使第一次查询很慢,之后直接缓存命中也是很快的。3.参考答案:C4.参考答案:B5.参考答案:C6.参考答案:C7.参考答案:B8.参考答案: Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。  Collection是个java.util下的接口,它是各种集合结构的父接口。9.参考答案: hibernate中的一些对象可以给Spring来管理,让Spring容器来创建hibernate中一些对象实例化。例如:SessionFactory,HibernateTemplate等。  Hibernate本来是对数据库的一些操作,放在DAO层,而Spring给业务层的方法定义了事务,业务层调用DAO层的方法,很好的将Hibernate的操作也加入到事务中来了。10.参考答案: 11.参考答案:B12.参考答案:A,B,D13.参考答案:不对,有相同的hashcode。14.参考答案:A,B,C15.参考答案:DetachedObject(游离对象)可以传递到任何层直到表现层而不是用任何DTO(DataTransferObjects).然后你还可以重新把游离对象赋给另外一个Session.16.参考答案:A,B17.参考答案:A,D18.参考答案: 19.参考答案:B20.参考答案:A21.参考答案:A22.参考答案:D23.参考答案:C24.参考答案:A25.参考答案:A26.参考答案:C27.参考答案: 28.参考答案:B29.参考答案:A30.参考答案: (1)Hibernate的优点: 1).Hibernate使用Java反射机制,而不是字节码增强程序来实现透明性;  2).Hibernate的性能非常好,因为它是一个轻量级框架。映射的灵活性很出色; 3).它支持多种关系数据库,从一对一到多对多的各种复杂关系; (2)Hibernate的缺点: 它限制您所使用的对象模型,如一个持久性类不能映射到多个表,其独有的 界面和可怜的市场份额也让人不安。第2卷一.参考题库(共30题)1.下面创建Criteria对象的语句中正确的是()A、Criteria c = query.createCriteria();B、Criteria c = query.addCriteria();C、Criteria c = session.createCriteria();D、Criteria c = session.createCriteria(User.class);2.AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?3.如果数据库是oracle或者db2,则generator属性值不可以使用()。A、  nativeB、  identityC、  hiloD、  sequence4.什么事O/RM?5.下面程序执行后没有报错,但数据总保存不到数据库,最可能的原因是()A、没有在配置文件中包含对映射文件的声明B、配置文件配置有误C、映射文件配置有误D、没有对持久化操作捕捉异常E、没有开启事务6.关于Hibernate中关系的说话正确的是()A、一对多必须用Set来映射B、多对一必须用Set来映射C、一对多可以用Set来映射,也可以用List、Map来映射D、多对一必须用Set来映射,也可以用List、Map来映射7.在三层结构中,数据访问层承担的责任是()A、定义实体类B、数据的增删改查操作C、业务逻辑的描述D、页面展示和控制转发8.A_oe和A_hr是数据库中的2个用户,A_oe下有一个表Orders,执行下列语句如下: 执行上面语句后结果正确的是()。A、A_hr能够查询A_oe.orders表B、A_hr不能够查询A_oe.orders表C、REVOKE语句将撤销A_hr的SELECT权限同时也从r1角色撤销SELECT权限D、REVOKE语句将报错,因为SELECT权限已经被r1角色授予9.试述load()和get()的区别。10.在Hibernate中,以下关于主键生成器说法错误的是()。A、increment可以用于类型为long、short或byte的主键B、identity用于如SQLServer、DB2、MySQL等支持标识列的数据库C、sequence用于如Oracle、SQLServer等支持序列的数据库D、native由Hibernate根据底层数据库自行判断采用何种主键生成策略,是由使用的数据库生成主键的值11.在Hibernate的HQL查询中,下列说法不正确的是()。A、在Hibernate3中,可以使用update、delete子句B、在Hibernate3中,不可以使用update、delete子句C、HQL是基于SQL的D、HQL提供了更多面向对象的封装12.在Hibernate的Criteria查询中,从第5条记录开始查询的方法是()。A、criteria.setFirstResult(4);B、criteria.setFirstResult(5);C、criteria.setMaxResult(4);D、criteria.setMaxResult(5);13.Struts的validate框架是如何验证的?14.将某个对象从Session的一级缓存中清除的方法是()。A、close()B、clear()C、evict()D、flush()15.在J2EE中,EJB组件必须在()容器中才能运行A、AppletB、客户端C、WebD、EJB16.在MyBatis中,ExecutorType的值包括()。A、ExecutorType.SIMPLEB、ExecutorType.BATCHC、ExecutorType.EXECUTED、ExecutorType.REUSE17.hibernate里面的sortedcollection和orderedcollection有什么区别?18.下面关于ORM的说法错误的是()A、对象关系映射,让现实中的对象同数据库的表产生映射B、对象关系映射,让类同表产生关系C、对象关系映射,让类同记录产生关系D、对象关系映射,让类中的属性同表中的列产生关系19.请简述MyBatis和Hibernate的区别。20.下列属于多对一关系的是()A、书和作者B、手机和生产厂家C、用户和发布的出租信息D、士兵和班长21.什么是Hibernate的并发机制?怎么去处理并发问题?22.下面关系Hibernate对象的状态说话正确的是()A、Hibernat的对象只有一种状态B、Hibernat的对象有2种状态C、Hibernat的对象有3种状态D、Hibernat的对象有4种状态23.类级别的默认检索是()。A、立即检索B、延迟检索C、迫切左外连接检索D、批量检索24.<set>元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取()值A、noneB、saveC、deleteD、save-update25.在Hibernate中,用于比较字符串的like操作符“like’部%’”表示()。A、所有以“部”开头的字符串B、所有以“部”结尾的字符串C、所有包括“部”的字符串D、所有包括“部”且“部”不在开头和结尾的字符串26.Hibernate对象从瞬时(即临时状态)到持久状态转换的方式有()A、调用session的save方法B、调用session的create方法C、调用session的update方法D、调用session的load方法27.spring工作机制及为什么要用?28.下面一对多关联的配置中,存在哪些错误()A、inverse属性不可以设置为falseB、cascade属性不可设置为trueC、class="com.x.entity.Order"应为type="com.x.entity.Order"D、column属性不可再<one-to-many>节点内设置29.Hibernate的延迟加载怎么看?30.J2EE中往往使用()封装业务实体,()封装业务逻辑,()调用A、实体Bean、会话 Bean、实体Bean、会话 BeanB、实体Bean、会话 Bean、会话Bean、实体BeanC、会话Bean、实体Bean、实体Bean、会话 BeanD、会话Bean、实体Bean、会话Bean、实体Bean第2卷参考答案一.参考题库1.参考答案:D2.参考答案:匿名的内部类是没有名字的内部类。不能extends(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现。3.参考答案:B4.参考答案:对象关心映射是一种为了解决面向对象与关心数据库互不匹配的技术。简单的说,orm是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中,本质上就是将数据从一种形式转换到另一种形式。5.参考答案:E6.参考答案:C7.参考答案:B8.参考答案:A9.参考答案: 1.从返回结果上对比: L.oad方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常get方法检索不到的话会返回null 2.从检索执行机制上对比: get方法和find方法都是直接从数据库中检索 而load方法的执行则比较复杂首先查找session的persistent Context中是否有缓存,如果有则直接返回 如果没有则判断是否是lazy,如果不是直接访问数据库检索,查到记录返回,查不到抛出异常 如果是lazy则需要建立代理对象,对象的initialized属性为false,target属性为null 在访问获得的代理对象的属性时,检索数据库,如果找到记录则把该记录的对象复制到代理对象的target上,并将initialized=true,如果找不到就抛出异常。 H.ibernate对于 load方法认为该数据在数据库中一定存在,可以放心的使用代理来延迟加载,如果在使用过程中发现了问题,只能抛异常;而对于get方法,hibernate一定要获取到真实的数据,否则返回null。10.参考答案:A,C11.参考答案:B12.参考答案:A13.参考答案:在struts配置文件中配置具体的错误提示,再在FormBean中的validate()方法具体调用。14.参考答案:C15.参考答案:D16.参考答案:A,B,D17.参考答案:sortedcollection是在内存中通过java比较器进行排序的orderedcollection是在数据库中通过orderby进行排序的18.参考答案:A,C19.参考答案: 调优方案: Hibernate的调优方案: 1.制定合理的缓存策略; 2.尽量使用延迟加载特性; 3.采用合理的Session管理机制; 4.使用批量抓取,设定合理的批处理参数(batch_size); 5.进行合理的O/R映射设计 Mybatis调优方案: MyBatis在Session方面和Hibernate的Session生命周期是一致的,同样需要合理的Session管理机制。MyBatis同样具有二级缓存机制。MyBatis可以进行详细的SQL优化设计。 1、SQL优化方面 Hibernate的查询会将表中的所有字段查询出来,这一点会有性能消耗。Hibernate也可以自己写SQL来指定需要查询的字段,但这样就破坏了Hibernate开发的简洁性。而Mybatis的SQL是手动编写的,所以可以按需求指定查询的字段。HibernateSQL语句的调优需要将SQL打印出来,而Hibernate的SQL被很多人嫌弃因为太丑了。MyBatis的SQL是自己手动写的所以调整方便。但Hibernate具有自己的日志统计。Mybatis本身不带日志统计,使用Log4j进行日志记录 2、扩展性方面 Hibernate与具体数据库的关联只需在XML文件中配置即可,所有的SQL语句与具体使用的数据库无关,移植性很好。MyBatis项目中所有的SQL语句都是依赖所用的数据库的,所以不同数据库类型的支持不好。20.参考答案:D21.参

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论