Hibernate+答案

更新时间:2024-05-16 23:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

针对以下题目请选择正确答案(每道题目有一个或多个正确的答案)。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有正确答案,则该题不得分,以下每题2分。

1) 2) 3) 4) 5) 6)

在三层结构中,数据访问层承担的责任是()〔选一项〕B a) b) c) d)

定义实体类

数据的增删改查操作 业务逻辑的描述 页面展示和控制转发

下面关于数据持久化概念的描述,错误的是()〔选择一项〕D a) b) c) d)

保存在内存中数据的状态是瞬时状态 持久状态的数据在关机后数据依然存在 数据可以由持久状态转换为瞬时状态

将数据转换为持久状态的机制称为数据持久化 瞬时-持久状态 持久化

下面关于Hibernate的说法,错误的是()〔选择一项〕C a) b) c) d)

Hibernate是一个“对象-关系映射”的实现 Hibernate是一种数据持久化技术 Hibernate是JDBC的替代技术

使用Hibernate可以简化持久化层的编码 持久化层 – 数据层 – 持久层

Hibernate配置文件中,不包含下面的()〔选择二项〕AB a) b) c) d)

“对象-关系映射”信息 实体间关联的配置

show_sql等参数的配置 数据库连接信息

在Hibernate关系映射配置中,inverse属性的含义是()。〔选择一项〕B a) b) c) d)

定义在节点上,声明要负责关联的维护 声明在节点上,声明要对方负责关联的维护

定义在节点上,声明对方要负责关联的维护 声明在节点上,声明要负责关联的维护

在使用了Hibernate的系统中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下面方法可行的是()。〔选择一项〕B a) b) c)

配置客户和订单关联的cascade属性为save-update 配置客户和订单关联的cascade属性为all 设置多对一关联的inverse属性为true

7)

d) 设置多对一关联的inverse属性为false

下面一对多关联的配置中,存在哪些错误()。〔选择二项〕BD a) b) c) d)

inverse属性不可以设置为false cascade属性不可设置为true

class=\应为type=\

column属性不可再节点内设置 set 中的key子元素指定

8)

执行下面的hql查询,关于返回值的说法,正确的是()。B select u.username,u.userid from com.x.entity.User u where u is not null a) b) c) d)

语法错误,不能执行

返回一个类型为List的实例 List中封装的是数组 返回一个数组

当返回结果只有一条时,返回一个数组

9) 10) 11) 12)

下面创建Criteria对象的语句中正确的是()。D a) b) c) d)

Criteria c = query.createCriteria(); Criteria c = query.addCriteria(); Criteria c = session.createCriteria();

Criteria c = session.createCriteria(User.class);

一般情况下,关系数据模型与对象模型之间有哪些匹配关系(选择三项)ACD a) b) c) d)

表对应类

记录对应对象

表的字段对应类的属性

表之间的参考关系对应类之间的依赖关系

以下关于SessionFactory的说法哪些正确?(选择三项)BCD a) b) c) d)

对于每个数据库事务,应该创建一个SessionFactory对象 一个SessionFactory对象对应一个数据库存储源。

SessionFactory是重量级的对象,不应该随意创建。如果系统中只有一个数据库存储源,只需要创建一个。

SessionFactory的load()方法用于加载持久化对象 ??

Customer类中有一个Set类型的orders属性,用来存放Order订单对象,在Customer.hbm.xml文件中,用哪个元素映射orders属性?(选择2项)AB

13) 14) 15) 16)

a) b) c) d)

元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?()〔选择一项〕D a) b) c) d)

none save delete

save-update

以下哪些属于Session的方法?(选择3项)ABD a) b) c) d)

load() save() open()

saveOrUpdate()

创建序列时,若未指定Cycle选项,则当当前值大于MaxValue时将()〔选择一项〕 C a) b) c) d)

从MinValue重新开始循环 重复使用MaxValue 值 执行出错 使用随机值

以下程序的打印结果是什么?C tx = session.beginTransaction();

Customer c1=(Customer)session.load(Customer.class,new Long(1)); Customer c2=(Customer)session.load(Customer.class,new Long(1)); System.out.println(c1==c2); tx.commit(); session.close(); a) b) c) d)

运行出错,抛出异常 打印false 打印true 编译出错

17)

以下程序代码对Customer的name属性修改了两次:A tx = session.beginTransaction();

Customer customer=(Customer)session.load(Customer.class, new Integer(1)); customer.setName(\\\customer.setName(\\\tx.commit();

执行以上程序,Hibernate需要向数据库提交几条update语句?(单选) a) b) c) d)

0 1 2 3

18) 19)

在持久化层,对象分为哪些状态?(多选)ACD a) b) c) d)

瞬时(Transient) 新建(New)

脱管(Detached) 持久(Persistent)

对于以下程序,Customer对象在第几行变为持久化状态?(单选)C Customer customer=new Customer(); customer.setName(\\\

Session session1=sessionFactory.openSession();

Transaction tx1 = session1.beginTransaction(); //line1 session1.save(customer); //line2 tx1.commit(); //line3 session1.close(); //line4 a) b) c) d)

line1 line2 line3 line4

20)

对于以下程序,Customer对象在第几行变为游离状态?(单选)D Customer customer=new Customer(); customer.setName(\\\

Session session1=sessionFactory.openSession();

Transaction tx1 = session1.beginTransaction(); //line1 session1.save(customer); //line2 tx1.commit(); //line3 session1.close(); //line4

游离【脱管】状态:没有与session相关联 a) b) c) d)

line1 line2 line3 line4

21) 22)

以下哪一种检索策略利用了外连结查询?(单选)C a) b) c) d)

立即检索 延迟检索

迫切左外连结检索 迫切右外连结检索

假设对Customer类的orders集合采用延迟检索策略,编译或运行以下程序,会出现什么情况(单选)

Session session=sessionFactory.openSession(); tx = session.beginTransaction();

Customer customer=(Customer)session.get(Customer.class,new Long(1)); tx.commit(); session.close();

Iterator orderIterator=customer.getOrders().iterator(); D a) b) c) d)

编译出错

编译通过,正常运行,不显示任何信息 编译通过,正常运行,并显示出结果 编译通过,但运行时抛出异常

23) 24)

POJO是 A a) b) c) d)

Plain Old Java Object 持久化对象 实体类 Programming Object Java Object Page Old Java Object Plain Object Java Old

POJO的作用是 AC (选择两项)

25) 26) 27) 28) 29) 30) 31)

a) b) c) d) 普通的Java对象映射数据库字段 数据访问 对象的赋值

保存客户端对象

实现equals和hashCode最显而易见的作用是 B a) b) c) d)

比较两个对象标识符的值 比较数据库的两条数据

比较两个组建是否部署在同一个应用服务器上 对象与字段的映射

持久化状态前进行合法性检查,需要实现的接口是 B a) b) c) d)

ActionListener Lifecycle

HttpServletRequest

持久化状态合法检查不需要实现接口

在源代码中嵌入映射信息需要 A a) XDoclet b) EJB c) Hibernate d) Spring

所有的Hibernate,除了 了都支持空(null)语义。A a) b) c) d)

Collection Element Entity NodeList

下面 不能生成映射文档 B a) XDoclet b) Middlegen c) AndroMDA 建模工具 d) MyEclipse

元素把子对象的一些元素与父类对应的表的一些字段映射起来 【组建映射】 A a) b) c) d)

Component Element Attribute ActionForm

要实现一个自定义类型,需要实现的接口是 或 AB org.hibernate.UserType a)

org.hibernate.CompositeUserType b) org.hibernate.Session c) org.hibernate.CompositeUserType.UserType d)

32) ORM是 A a) 对象关系映射 b) 对象实体映射 c) 数据传输对象 d) 数据访问对象

33) JDBC可以做哪三件事 ABC a) 与数据库建立连接 b) 通过JDBC-API向数据库发送SQL语句 c) 通过JDBC-API执行SQL语句 d) 进行实体关系的映射

34) ORM有什么好处 A a) 能进行关系对象的映射 b) 具有控制器功能 c) 能在服务器端保存客户端状态 d) 向DTO一项能传递数据

35) 常见的实体域对象是 AB a) 主动域对象(EJB) 【Enterprise JavaBean】 b) JavaBean对象(也称为POJO,Plain Old Java Object) c) 控制器对象 ActionForm d)

36) 过程域对象在Hibernate中代表 C a) 业务逻辑操作 b) 应用层操作 c) 数据库层操作 d) 组件对象操作

37) 常见的三层分别是 ABC a) 应用层 b) 业务逻辑层 c) 数据访问层 d) 通讯层

38) 对象(实体的实例)对一个特定的Session来说,要么是一个____对象,要么是____

对象 AB

a) 瞬时

39) 40) 41) 42) 43) 44) 45)

b) c) d) 持久化 控制器

数据传输对象

如果你已知某个实例的持久化标识,你可以使用Session的______方法来获取它 A a) load() get() 持久化标识:主键

loadAll() b)

getAllData() c)

init() d)

如果你不能确定你要寻找的对象的持久化标识符,那么你需要使用查询,使用Session

的____方法 A

createQuery() a)

query() b)

queryAll() c)

queryObject() d)

使用Session的____会把对象的状态从数据库中移除 A delete() a)

remove() b)

clear() c)

removeAll() d)

Hibernate通过____接口,____接口和Type层次体系来访问元数据。AB a)

b) c) d)

ClassMetadata CollectionMetadata Metadata

CollectionMeta

HQL不支持聚合函数有 D a) b) c) d)

count(*) avg(…) count(…) count(?)

____和____子句都不支持算数表达式。 AB a) b) c) d)

group by order by compute by insert by

除了____和____外,查询语句都是大小写不敏感得到。 AB

46) 47) 48) 49) 50) 51)

a) b) c) d) Java类 POJO类 映射文件 属性名称

from Cat as cat,不仅仅返回____的实例,而且还返回____的实例 AC a) b) c) d)

Cat

Cat父类 Cat子类 Cat实现接口

____代表升序,____代表降序 AC a) b) c) d)

asc ansi desc

description

对原生SQL查询的控制是通过____接口进行的。 A a) b) c) d)

SQLQuery Session List Query

命名SQL查询中____和____元素是用来连接关联以及将查询定义为预先初始化各个集合的。 AD a) b) c) d)

一个命名查询可能会返回一个标量值,你必须使用____元素来指定字段的别名和Hibernate类型。 A a) b) c) d)

假设实体映射时有一个____的关联指向另外一个实体,在查询时必须也返回那个实体,否则会导致发生一个”column not found”的数据库错误。 C

52) 53)

a) b) c) d) many-to-one many-to-many one-to-many one-to-one

你可以把结果集映射的信息放在外部的____元素中,这样就可以在多个命名查询间,或者通过setResultSetMapping()API来访问。 A a) b) c) d)

使用Hibernate的QBC查询,要使用SQL中的类似select count(*) from tablename方法求出记录数,必须使用哪一个类。 B

Restrictions a) Projections b) Criteria c) Criteron d) QBC: Query By Criteria

54) 在Hibernate中,关于数据库的方言,下面哪个说法是正确的 D a) 可以不写数据库方言 b) 数据库方言没有作用,可以随便写 c) 有通用的数据库方言可以使用 d) 数据方言对应于每个数据库,主要用于产生SQL语句

55) 下面不属于持久化的是 A a) 把对象转换称字符串的形式通过网络传输,在另一端接收到这个字符串后能把

对象还原出来

b) 把程序数据从数据库中读出来 c) 从XML配置文件中读取程序的配置信息 d) 把程序数据保存为文件

56) 下面不是Hibernate映射文件中包含的内容。(选两项) CD a) 数据库连接信息 b) Hibernate属性参数

57)

c) d) 主键生成策略· 属性数据类型

下面的程序执行后没有报错,但数据总保存不到数据库,最可能的原因是 E public static void imain(String[] args){ SessionFactory sf=new Configration().configure().buildSessionFactory(); Session session=sf.openSession(); Medal medal=new Medal(); medal.setOwner(“totong”); medal.setType(“Gold medal”); session.save(user); session.close(); } a) b) c) d) e)

配置文件配置有误

没有在配置文件中包含对映射文件的声明 配置文件配置有误

没有对持久化操作捕捉异常 没有开启事务

58) 59) 60)

下列属于多对一关系的是___ BC a) b) c) d)

书和作者 多对多 手机和生产厂家

用户和发布的出租信息 一对多 士兵和班长

已知wage.getItem().size()的值是1。要想使执行session.update(wage)时自动执行session.update(wage.getItems().get(0)),必须配置 D a) b) c) d)

已知系统中的tbl_user表对应的实体类是User,下列HQL语句中正确的是(选两项) AD a) b) c) d)

from User

select * from tbluser

select User from User select u from User u from User u where u.uname=”15”

61) 62) 63) 64) 65)

以下对Hibernate工作原理的描述,不正确的是:(单选) B a) b) c) d)

读取并解析配置文件,读取并解析映射信息,创建SessionFactory 创建Sesssion对象,获取事务Transation对象 持久化操作,提交事务

关闭Session对象,关闭SesstionFactory

对于使用Hibernte的作用的描述,下列不正确的是:(单选) C a) b) c) d)

Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码

Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作

Hibernate使用Java反射机制,并使用Java字节码增强程序来实现透明性。 Hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。

关于Hibernate的优化,下列说法正确的是:(多选) ABCD a) b) c) d)

使用双向一对多关联,不使用单向一对多,灵活使用单向一对多关联。 不用一对一,用多对一取代,配置对象缓存,不使用集合缓存 一对多集合使用Bag,多对多集合使用Set 继承类使用显式多态,表字段要少

在Hibernate中,查询方式有以下几种:(多选) ABCD a) b) c) d)

属性查询

参数查询、命名参数查询 关联查询

分页查询,统计函数

阅读代码: BC

Query q = session.createQuery(“select c.name,c.password from Customer as c ”); 如果希望得到查询结果中第一行中的顾客名,那么下列写法正确的是( ) a) b) c) d)

Customer cus = (Customer)q.list().get(0); System.out.println(cus.getName()); String name = (String)q.list().get(0)[0]; System.out.println(name);

Object [] obj = (Object[])q.list().iterator().next(); System.out.println(obj[0]);

String name = (Customer) (q.list().uniqueResult()).getName(); System.out.println(name);

66)

阅读代码片段: String hql = “from Card c order by c. integral desc” Query q = session.createQuery(hql); q.setFirstResult(0); q.setMaxResult(10); return q.list(); 该段代码的目的是( ) A a) b) c) d)

列出积分最高的10张卡 列出积分最低的10张卡 列出积分最高的11张卡 列出积分最低的11张卡

67) 68) 69)

下面属于一对多关系的是() CE a) b) c) d) e)

你家的钥匙与大门 一对一 学员与班主任 多对一 教员与学员 多对多 本章理论部分与上机部分 作家与出版社

inverse的值可以为___ AC a) b) c) d)

true default false none

某系统实体类如下: public class A{ private int a1; private String a2; //getter and setter }

public class B{ private A a ; private int b1; private String b2; //getter and setter }

A与B之间的关系为() C a) b) c)

A->B双向一对一关联 A->B单向一对一关联 B->A单向一对一关联

70)

d) B->A双向一对一关联

下面的程序片段执行后没有报错,但数据并没有保存到数据库,最可能的原因是( ) SessionFactory sf=new Configration().configure().buildSessionFactory(); Session session=sf.openSession(); Customer c = new Customer(); c.setUsername(“tor”);

c.setPassword(“********”); session.save(c); session.close(); E

配置文件配置有误

没有在配置文件中包含对映射文件的声明 映射文件配置有误

没有对持久化操作捕捉异常 没有开启事务

a) b) c) d) e)

Answers: 1.b 11.bcd 21.c 31.ab 41.a 51.c 61.b

2.d 3.c 13.b 23.a 33.abc 43.a 53.b 4.ab 14.abd 24.ac 34.a 44.ab 54.d 5.b 15.a 25.b 35.ab 45.ab 55.a 6.b 16.c 26.b 36.c 46.ac 56.cd 66.a 7.ac 17.a 27.a 37.abc 47.ac 57.e 67.ce 8.c 18.acd 28.a 38.ab 48.a 58.bc 68.ac 9.d 19.b 29.b 39.a 49.ad 59.d 69.c 10.acd 20.d 30.a 40.a 50.a 60.ad 70.e 12.ab 22.a 32.a 42.ab 52.a 62.c 63.abcd 64.abcd 65.ac

本文来源:https://www.bwwdw.com/article/8el7.html

Top