Hibernate复习题含答案_第1页
Hibernate复习题含答案_第2页
Hibernate复习题含答案_第3页
Hibernate复习题含答案_第4页
Hibernate复习题含答案_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、美斯坦福在线考试系统 荆州理工G3 Hibernate 科目: SCCEG3Hibernate总分: 100分时间: 60分钟 一、单选题 (共45题,每题2分,说明:选择一项正确的答案) 1、 下面关于Hibernate的说法,错误的是( ) A、Hibernate是一个“对象-关系映射”的实现 B、Hibernate是一种数据持久化技术 C、Hibernate是JDBC的替代技术 他是对JDBC做了轻量级的对象封装 D、使用Hibernate可以简化持久化层的编码 参考答案: C 2、 在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可

2、行的是( ) A、配置客户和订单关联的cascade属性为save-update B、配置客户和订单关联的cascade属性为all C、设置多对一关联的inverse属性为true D、设置多对一关联的inverse属性为false 参考答案: B详解 3、 下面一对多关联的配置中,存在哪些错误( ) set name="orders" inverse="false" cascade="true" one-to-many class="com.x.entity.Order" column="custom

3、er_id" / /set A、inverse属性不可以设置为false B、cascade属性不可设置为true C、class="com.x.entity.Order"应为type="com.x.entity.Order" D、column属性不可再one-to-many节点内设置 参考答案: B 4、 下面创建Criteria对象的语句中正确的是( ) A、Criteria c = query.createCriteria(); B、Criteria c = query.addCriteria(); C、Criteria c = sess

4、ion.createCriteria(); D、Criteria c = session.createCriteria(User.class); 参考答案: D 5、 下面关于Hibernate映射文件配置中dynamic-update属性说法正确的是( )详解 A、动态的修改,如果为true,只改变有改变的属性 B、动态的修改,如果为true,只改变没有改变过的属性 C、动态的修改,如果为true,改变所有的属性 D、以上说法都错 参考答案: A 6、 下面关系Hibernate对象的状态说话正确的是( )临时 持久化 游离 A、Hibernat的对象只有一种状态 B、Hibernat的对象

5、有2种状态 C、Hibernat的对象有3种状态 D、Hibernat的对象有4种状态 参考答案: C 7、 Hibernate对象从瞬时到持久状态转换的方式有( )。 A、调用session的save方法 saveorupdat B、调用session的create方法 C、调用session的update方法 D、调用session的load方法 参考答案: A 8、 J2EE中往往使用_封装业务实体,_封装业务逻辑,_调用( ) A、实体Bean、会话 Bean、实体Bean、会话 Bean B、实体Bean、会话 Bean、会话Bean、实体Bean C、会话Bean、实体Bean、实

6、体Bean、会话 Bean D、会话Bean、实体Bean、会话Bean、实体Bean 参考答案: B 9、 EJB分为( )三种类型 A、会话bean、实体bean、Web service B、会话bean、实体bean、消息驱动bean C、Jsp、servlet、jsf D、实现类、Home接口类、Object接口类 参考答案: B 10、 有状态Session Bean和无状态Session Bean的区别说法正确的是( )详解 A、无状态Session Bean要保存客户端的状态,同客户端是一对一 B、有状态Session Bean要保存客户端的状态,同客户端是一对一 C、他们都要保

7、存客户端的状态,同客户端是一对一 D、以上说法都不对 参考答案: B 11、 有以下代码段,下面说法正确的是( ) p65 String qlString = "select model from Student as model where model.createDate = ?1" (1) Query query = em.createQuery(qlString); (2) query.setParameter(0, "2000-12-05"); (3) List list = q.list(); (4) A、第一行有错,必须为参数起个名字 B、

8、第三行有错误,query.setParameter(0, "2000-12-05")应为query.setParameter(1, "2000-12-05"); C、第四行没有错误 D、这些语句没有错误 参考答案: B 12、 在EJB3.0中用来保存一个对象的方法是( ) A、save B、update C、persist D、create 参考答案: C 13、 在J2EE中,Servlet和JSP组件必须在( )容器中才能运行 A、Applet B、客户端 C、Web D、EJB 参考答案: C 14、 在J2EE中,EJB组件必须在( )容器中才

9、能运行 A、Applet B、客户端 C、Web D、EJB 参考答案: D 15、 在三层结构中,数据访问层承担的责任是( ) A、定义实体类 B、数据的增删改查操作 C、业务逻辑的描述 D、页面展示和控制转发 参考答案: B 16、 set元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取( )值 A、none B、save C、delete D、save-update 参考答案: D 17、 以下程序的打印结果是( ) tx = session.beginTransaction(); Customer c1=(Customer)ses

10、sion.load(Customer.class,new Long(1); Customer c2=(Customer)session.load(Customer.class,new Long(1); System.out.println(c1=c2); mit(); session.close(); A、运行出错,抛出异常 B、打印false C、打印true D、编译出错 参考答案: C 18、 以下程序代码对Customer的name属性修改了两次: tx = session.beginTransaction(); Customer customer=(Customer)session.

11、load(Customer.class, new Long(1); customer.setName("Jack"); customer.setName("Mike"); mit(); 执行以上程序,Hibernate需要向数据库提交( )条update语句 A、0 B、1 C、2 D、3 参考答案: B 19、 对于以下程序,Customer对象在第( )行变为游离状态 close clear evict P82 Customer customer=new Customer(); customer.setName("Tom"); S

12、ession session1=sessionFactory.openSession(); Transaction tx1 = session1.beginTransaction(); line1 session1.save(customer); line2 mit(); line3 session1.close(); line4 A、line1 B、line2 C、line3 D、line4 参考答案: D 20、 以下检索策略中,( )利用了外连结查询 详解20 A、立即检索 B、延迟检索 C、迫切左外连结检索 D、迫切右外连结检索 参考答案: C 21、 假设对Customer类的ord

13、ers集合采用延迟检索策略,编译或运行以下程序,会出现( ) Session session=sessionFactory.openSession(); tx = session.beginTransaction(); Customer customer=(Customer)session.get(Customer.class,new Long(1); mit(); session.close(); Iterator orderIterator=customer.getOrders().iterator(); A、编译出错 B、编译通过,正常运行,不显示任何信息 C、编译通过,正常运行,并显示

14、出结果 D、编译通过,但运行时抛出异常 参考答案: D 22、 在源代码中嵌入映射信息需要( ) A、Annoation B、hbm.xml C、struts.xml D、web.xml 参考答案: A 23、 ORM的好处包括( ) A、能进行关系对象的映射 B、具有控制器功能 C、能在服务器端保存客户端状态 D、向DTO一项能传递数据 参考答案: A 24、 已知某个实例的持久化标识,可以使用Session的( )方法来获取它 A、load() B、loadAll() C、getAllData() D、init() 参考答案: A 25、 如果不确定所寻找对象的持久化标识符,则需要使用查询

15、,使用Session的( )方法 A、createQuery() B、query() C、queryAll() D、queryObject() 参考答案: A 26、 使用Session的( ),会把对象的状态从数据库中移除 A、delete() B、remove() C、clear() D、removeAll() 参考答案: A 27、 对原生SQL查询的控制是通过( )接口进行的 A、SQLQuery B、Session C、List D、Query 参考答案: A 28、 可以把结果集映射的信息放在外部的( )元素中,这样就可以在多个命名查询间或者通过setResultSetMappin

16、g()API来访问 A、resultset B、result C、mapping D、description 参考答案: A 29、 使用Hibernate的QBC查询,要使用SQL中的类似select count(*) from tablename方法求出记录数,必须使用( )类 A、Restrictions B、Projections C、Criteria D、Criteron 参考答案: B 30、 在Hibernate中,关于数据库的方言,下面说法正确的是( ) A、可以不写数据库方言 B、数据库方言没有作用,可以随便写 C、有通用的数据库方言可以使用 D、数据方言对应于每个数据库,主

17、要用于产生SQL语句 参考答案: D 31、 下面不属于持久化的是( ) A、把对象转换称字符串的形式通过网络传输,在另一端接收到这个字符串后能把对象还原出来 B、把程序数据从数据库中读出来 C、从XML配置文件中读取程序的配置信息 D、把程序数据保存为文件 参考答案: A 32、 下面的程序执行后没有报错,但数据总保存不到数据库,最可能的原因是( ) public static void imain(String args) SessionFactory sf=new Configration().configure().buildSessionFactory(); Session sess

18、ion=sf.openSession(); Medal medal=new Medal(); medal.setOwner(“totong”); medal.setType(“Gold medal”); session.save(user); session.close(); A、配置文件配置有误 B、没有在配置文件中包含对映射文件的声明 C、配置文件配置有误 D、没有对持久化操作捕捉异常 E、没有开启事务 参考答案: E 33、 已知wage.getItem().size()的值是1。要想使执行session.update(wage)时自动执行session.update(wage.getI

19、tems().get(0),必须配置( ) A、set name=”items” inverse=”true” cascade=”none”/set B、set name=”items” inverse=”false” cascade=”none”/set C、set name=”items” inverse=”true” cascade=”all”/set D、set name=”items” inverse=”false” cascade=”save-update”/set 参考答案: D 34、 在Hibernate关系映射配置中,inverse属性的含义是( )。 A、定义在one-t

20、o-many节点上,声明要负责关联的维护 B、声明在set节点上,声明要对方负责关联的维护 C、定义在one-to-many节点上,声明对方要负责关联的维护 D、声明在set节点上,声明要负责关联的维护 参考答案: B 35、 执行下面的hql查询,关于返回值的说法,正确的是( ) select u.username,u.userid from com.scce.pojo.User u where u is not null A、语法错误,不能执行 B、返回一个类型为List的实例 C、返回一个数组 D、当返回结果只有一条时,返回一个数组 参考答案: B 36、 以下哪一种检索策略利用了外连结

21、查询( ) A、立即检索 B、延迟检索 C、迫切左外连结检索 D、迫切右外连结检索 参考答案: C 37、 POJO是( ) A、Plain Old Java Object B、Programming Object Java Object C、Page Old Java Object D、Plain Object Java Old 参考答案: A 38、 实现equals和hashCode最显而易见的作用是( )详解38 A、比较两个对象标识符的值 B、比较数据库的两条数据 C、比较两个组建是否部署在同一个应用服务器上 D、对象与字段的映射 参考答案: A 39、 在源代码中嵌入映射信息需要(

22、 ) A、XDoclet B、EJB C、Hibernate D、Spring 参考答案: A 40、 所有的Hibernate,除了( )都支持空(null)语义 A、Collection B、Element C、Entity D、NodeList 参考答案: A 41、 ( )元素把子对象的一些元素与父类对应的表的一些字段映射起来 A、Component B、Element C、Attribute D、ActionForm 参考答案: A 42、 HQL不支持聚合函数有( ) A、count(*) B、avg() C、count() D、count(?) 参考答案: D 43、 假设实体映

23、射时有一个( )的关联指向另外一个实体,在查询时必须也返回那个实体,否则会导致发生一个”column not found”的数据库错误 A、many-to-one B、many-to-many C、one-to-many D、one-to-one 参考答案: D 44、 在Hibernate中,关于数据库的方言,下面说法正确的是( ) A、可以不写数据库方言 B、数据库方言没有作用,可以随便写 C、有通用的数据库方言可以使用 D、数据方言对应于每个数据库,主要用于产生SQL语句 参考答案: D 45、 下列属于多对一关系的是( ) A、书和作者 B、手机和生产厂家 C、用户和发布的出租信息 D

24、、士兵和班长 参考答案: D 二、多选题 (共5题,每题2分),说明:选择多项正确的答案) 1、 从持久化状态到临时状态转换的方法有( )选三项 A、evict() B、clear() C、close() D、lock() 参考答案: ABC 2、 有如下代码 Dept deptOne = new Dept(); deptOne.setDeptName("后勤部"); deptOne.setCreateDate("2001-03-02"); session.save(deptOne); Integer deptId = deptOne.getDeptId

25、(); deptOne = null; 下面说明正确的有( )选两项 A、deptOne处于生命周期 B、deptOne生命周期结束 C、deptOne处于持久化状态 D、deptOne处于游离状态 参考答案: AC 3、 Hibernate缓存主要从哪些方面发生作用( )选两项 见书P84 A、通过主键值加载数据 B、查询数据 C、立即加载 D、延迟加载 参考答案: AD 4、 什么是Hibernate一级缓存( )选两项 A、Hibernate一级缓存是Session的缓存 B、Hibernate一级缓存是SessionFactory的缓存 C、第一级缓存为必需,不允许且事实上也无法被卸除

26、 D、第一级缓存可以设置 参考答案: AC 5、 不适合放入Hibernate二级缓存的有( )选三项 A、常被修改的数据 B、绝不容许出现并发的数据,例如财务数据 C、与其他应用共享的数据 D、常用数据 参考答案: ABC详解5Hibernate中dynamic-insert和dynamic-update 设置属性默认值Hibernate允许我们在映射文件里控制insert和update语句的内容.比如在映射文件中<property 元素中的update属性设置成为false,那么这个字段,将不被包括在基本的update语句中,修改的时候,将不包括这个字段了.insert同理.dyna

27、mic动态SQL语句的配置也是很常用的.下面介绍配置SQL语句的具体属性: 1)<property>元素 insert属性:设置为false,在insert语句中不包含这个字段,表示永远不会被插入,默认true 2)<property>元素 update属性:设置为false,在update语句中不包含这个字段,表示永远不会被修改,默认true 3)<class>元素 mutable属性:设置为false就是把所有的<property>元素的update属性设置为了false,说明这个对象不会被更新,默认true 4)<property&g

28、t;元素 dynamic-insert属性:设置为true,表示insert对象的时候,生成动态的insert语句,如果这个字段的值是null就不会加入到insert语句当中.默认false 5)<property>元素 dynamic-update属性,设置为true,表示update对象的时候,生成动态的update语句,如果这个字段的值是null就不会被加入到update语句中,默认false 6)<class>元素 dynamic-insert属性:设置为true,表示把所有的<property>元素的dynamic-insert属性设置为true,

29、默认false 7)<class>元素 dynamic-update属性:设置为true,表示把所有的<property>元素的dynamic-update属性设置为true,默认false Hibernate生成动态SQL语句的消耗的系统资源(比如CPU,内存等)是很小的,所以不会影响到系统的性能,如果表中包含N多字段,建议把dynamic-update属性和insert属性设置为true,这样在插入和修改数据的时候,语句中只包括要插入或者修改的字段.可以节省SQL语句的执行时间,提高程序的运行效率.详解10现实中,很多朋友对两种session bean存在误解,认为

30、有状态是实例一直存在,保存每次调用后的状态,并对下一次调用起作用,而认为无状态是每次调用实例化一次,不保留用户信息。仔细分析并用实践检验后,你会发现,事实恰好相反: 有状态和无状态会话bean的本质区别是它们的生命期。 首先解释一个下面要用到的概念用户:session bean 的用户实际上就是直接调用ejb的类的实例,甚至是这个实例的某个方法。同一个类的不同实例对于session bean 来说是不同的用户。 有状态会话bean :每个用户有自己特有的一个实例,在用户的生存期内,bean保持了用户的信息,即“有状态”;一旦用户灭亡(调用结束或实例结束),bean的生命期也告结束。即每个用户最

31、初都会得到一个初始的bean。 无状态会话bean :bean一旦实例化就被加进会话池中,各个用户都可以共用。即使用户已经消亡,bean 的生命期也不一定结束,它可能依然存在于会话池中,供其他用户调用。由于没有特定的用户,那么也就不能保持某一用户的状态,所以叫无状态bean。但无状态会话bean 并非没有状态,如果它有自己的属性(变量),那么这些变量就会受到所有调用它的用户的影响,这是在实际应用中必须注意的。详解20Hibernate 提供了 3 种检索策略:l 延迟检索;l 立即检索;l 迫切左外连接;Hibernate 提供 2 种方式来确定检索策略,一中是在配置文件当中,另外一种是在程序

32、种设置。当然,如果你在程序中设置了检索策略,那么你在配置文件中的设置也就无效了。另外的一种情况是 HQL 会忽略配置文件的设置,而总是采用迫切左外连接。详解38原因是由于在Hibernate中,需要保证持久化标识(数据库的行)和仅在特定会话范围内的Java标识是等值的。我们必然希望Set有明确的语义,以避免混合了来自不同会话中获取的实例,从而确保数据的持久化不会发生错误。若使用过Set,你会知道Set中是不允许存储重复值的,这也是为什么Hibernate推荐在多表关联的映射中采用Set作为存储实体对象的主要原因。详解31明确inverse和cascade的作用inverse 决定是否把对对象中集合的改动反映到数据库中,所以inverse只对集合起作用,也就是只对one-to-many或many-to-many有效(因 为只有这两种关联关系包含集合,而one-to-one和many-to-one只含有关系对方的一个引用)。cascade决定是否把对对象的改动反映到数据库中,所以cascade对所有的关联关系都起作用(因

温馨提示

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

评论

0/150

提交评论