Hibernate考试试题 (题库)

 

1、  在Hibernate中,下列说法正确的有( ABC )。【选三项】

A.Hibernate是一个开放源代码的对象关系映射框架

B.Hibernate对JDBC进行了轻量级的对象封装

C.Hibernate可以大大减少操作数据库的工作量

D.Hibernate提供了数据查询机制,但没有提供恢复机制

 

2、  关于Hibernate,下列说法错误的是(  B  )。

A.Hibernate是一个对象-关系映射工具

B.在MVC模式中,Hibernate属于控制层

C.Hibernate在JDBC的方式上进行封装,以简化JDBC方式繁琐的编码工作

D.在Hibernate中,可以通过xml格式的配置文件保存对象-关系的映射信息

 

3、  在Hibernate中,下列关于SessionFactory说法正确的有( AD )。【选两项】

A.它是线程安全的

B.它不是线程安全的

C.它是轻量级的

D.一个SessionFactory实例对应一个数据存储源

 

4、  在Hibernate中,下列关于Session说法正确的有( BCD )。【选三项】

A.它是线程安全的

B.它不是线程安全的

C.它是轻量级的

D.Session也被称为持久化管理器,它提供了和持久化相关的操作

 

5、  在Hibernate中,下列关于Transaction说法正确的有( ABD )。【选三项】

A.事务Transaction为应用程序指定以原子操作单元为范围的对象

B.在对数据库进行增加、修改和删除操作时一定要加上Transaction

C.在对数据库进行查询操作时一定要加上Transaction

D.获得Transaction的方法:Transaction tr = session.beginTransaction();

 

6、  在Hibernate中,如果数据库是MySql或者SQLServer,则generator属性值不可以使用(  )。

A.hilo

B.native

C.sequence

D.indentity

 

7、  在Hibernate中,如果数据库是Oracle或者DB2,则generator属性值不可以使用(    )。

A.hilo

B.native

C.sequence

D.indentity

 

7、  在Hibernate中,下列哪个选项不属于Session的方法( C )。

A.load

B.save

C.open

D.delete

 

9、  在Hibernate中, generator属性值如果是native,则表示( C )。

A.由Hibernate自动以自增的方式生成标识符,每次增量为1

B.由Hibernate自动以自增的方式生成标识符,每次增量为自定义

C.根据底层数据库对自动生成标识符的支持来选择。。。。。。。。。。。。。。。。

D.由Java应用程序负责生成标识符

 

10、  Hibernate增加数据的时候,可以调用session的(  AD  )方法。【选两项】

A.save

B.update

C.add

D.saveOrUpdate

 

11、  Hibernate对JDBC访问数据库的代码进行了封装,从而大大简化了数据访问层的重复性代码,它是针对三层架构中( C )的解决方案。

A.表现层

B.业务逻辑层

C.持久化层

D.数据库系统

 

12、  Hibernate是一个优秀的Java持久化层解决方案,那么数据的持久化指的是( B )。

A.数据在程序退出后就不复存在

B.数据在程序退出后以文件等形式保存在存储设备中

C.数据的内容是不变的,处于静态中

D.数据的内容是变化的

 

13、  下列选项不属于持久化的是(  A  )。

A.将对象转换为字符串的形式通过网络传输,在另一端接收到该字符串后能将对象还原

B.将程序数据从数据库中读取出来

C.从XML配置文件中读取程序的配置信息

D.将程序数据保存为文件

 

14、  使用Hibernate 技术实现数据库持久化时,下列(  D  )不在Hibernate配置文件中。

A.数据库连接信息

B.数据库类型(dialect)

C.show_sql参数

D.数据库表和实体的映射信息

 

15、 在Hibernate中,inverse属性值为(  C  )时,会标识被控方。

A.all

B.false    

C.true 

D.none

 

16、  在Hibernate中,如果需要标识主控方,则inverse属性值应为(  B  )。

A.all

B.false    

C.true 

D.none

 

17、  在Hibernate中,从性能方面考虑,inverse属性值通常设置为(  B  )。

A.all

B.false    

C.true 

D.none

 

18、  Hibernate通过映射文件中的<generator>子元素来设定标识符生成器,下列选项哪些是Hibernate提供的内置实现( ABD )。【选三项】

A.hilo

B.native

C.assign

D.indentity

 

19、  三层结构是一种典型的应用软件分层结构,这三层分别是( ABD )。【选三项】

A.表述层

B.业务逻辑层

C.控制层

D.数据层

 

20、 持久化技术封装了数据访问的细节,为大部分业务逻辑提供了面向对象的API。数据持久化具有以下3个方面的特点,分别是( ABC )。【选三项】

A.通过持久化技术能够减少访问数据库中数据的次数,提高应用程序速度

B.提高代码的可重用性

C.松耦合,使持久化的实现不依赖于底层数据库及上层业务逻辑

D.具有更好的可扩展性

 

21、  在ORM中,面向对象概念中的对象与面向关系概念中的( B )相对应。

A.表

B.表的行

C.表的列

D.表中行的数据

 

22、 一般情况下,关系数据模型和对象模型之间有哪些匹配关系(  BD  )。【选两项】

A.表对应对象

B.记录对应对象

C.表的字段对应类方法

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

 

23、 在Hibernate中,一个持久化类的实例可能存在的状态有哪些(  ABD  )。【选三项】

A.瞬态

B.持久态

C.隔离态

D.游离态

 

24、  在Hibernate的映射文件中,id节点的property元素的( C )表示指定类的属性映射的表的字段名。

A.name

B.type

C.column

D.lazy

 

25、 在Hibernate的实体类映射文件中,class节点下必须有一个id节点,其中unsaved-value属性的默认值为(  A  )。

A.null

B.none

C.ture

D.false

 

26、  下列选项关于Configuration的说法不正确的是(  C  )。

A.Configuration类的构造方法用于将默认路径下的hibernate.cfg.xml(或hibernate.properties)配置文件中的配置信息读入到内存中

B.Configuration对象用于配置并启动Hibernate

C.获得Configuration的方法:Configuration config = new Configuration();

D. Hibernate应用通过Configuration实例指定对象-关系映射文件的位置或者动态配置Hibernate的属性

 

27、  在Hibernate中,当cascade属性值为(  C  )时,表示不进行级联操作。

A.all

B.no    

C.none 

D.delete

 

28、  在Hibernate中,如果需要进行级联删除,则cascade属性值可为(  AD  )。【选两项】

A.all

B.save-update    

C.none 

D.delete

 

29、   在Hibernate中,要想在删除某个客户数据的同时删除该客户对应的所有订单数据,下列方法可行的有( BD )。【选两项】

A.配置客户和订单关联的cascade属性为save-update

B.配置客户和订单关联的cascade属性为all    

C.设置多对一关联的inverse属性为true

D.设置多对一关联的inverse属性为false

 

30、在Hibernate中,<set>元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,则cascade属性应该取什么值(  C  )。

A.none

B.save

C.save-update

D.delete

 

31、 在Hibernate中,Customer类中有一个Set类型的orders属性,用于存放Order订单对象,在Customer.hbm.xml文件中,可以用(  A  )元素映射orders属性。

A.<set>

B.<one-to-many>

C.<many-to-one>

D.<property>

 

32、   在Hibernate中,下列一对多关联的配置中,存在哪些错误(  AC  )。【选两项】

<set name="orders" inverse="false" cascade="true">

                   <one-to-many class="com.scce.pojo.Order"

                                  column="customer_id" />

</set>

A.inverse属性不可以设置为false

B.cascade属性不可以设置为true

C.class="com.scce.pojo.Order"应为type="com.scce.pojo.Order"

D.column属性不可以在<one-to-many>节点内设置

 

33、  在Hibernate的HQL查询中,下列说法正确的是(  B  )。

A.可以调用用户自定义函数

B.不可以调用用户自定义函数

C.支持子查询

D.支持分页查询

 

34、  在Hibernate的HQL查询中,下列说法不正确的是(  B  )。

A.在Hibernate3中,可以使用update、delete子句

B.在Hibernate3中,不可以使用update、delete子句

C.HQL是基于SQL的

D.HQL提供了更多面向对象的封装

 

35、在Hibernate的HQL查询中,setMaxResults(3)方法中参数值3指的是(  C  )。

A.从第3条记录开始

B.从第4条记录开始

C.查询3条记录

D.查询4条记录

 

36、  在Hibernate的HQL查询中,setFirstResults(3)方法中参数值3指的是(  B )。

A.从第3条记录开始

B.从第4条记录开始

C.查询3条记录

D.查询4条记录

 

37、  下面代码的执行效果是(  C  )。

String hql = "from TblStudent s order by s.score asc";

Query query = session.createQuery(hql);

query.setFirstResult(0);

query.setMaxResults(5);

return query.list();

A.返回分数最高的5个学生

B.返回分数最高的6个学生

C.返回分数最低的5个学生

D.返回分数最低的6个学生

 

38、 在Hibernate的HQL查询中,下列说法不正确的是(  D  )。

A.HQL子句本身的大小写没有差异,但类名和属性名必须区分大小写

B.HQL支持where子句

C.HQL支持as子句

D.where、as关键字区分大小写

 

39、 在Hibernate的HQL查询中,有数据库表(dept)对应的对象名称为Dept,下列HQL写法正确的有(  BC  )。【选两项】

A.String hql = "from com.hr.g3.persist.dept as model";

B.String hql = "from com.hr.g3.persist.Dept ";

C.String hql = "from Dept as model";

D.String hql = "from dept ";

 

40、  关于HQL查询,下列说法正确的有(  CD  )。【选两项】

A.HQL查询的select子句中必须区分大小写

B.HQL支持不统计函数

C.HQL支持仅查询对象的某几个属性,查询结果保存于Object数组中

D.HQL查询为官方推荐的查询方式

 

41、在Hibernate中,下面代码实现了对Book实体中title属性的模糊查询,则下列选项中说法正确的是(   B  )。

Session session=this.getSession();                            

String hql = "from Book model where model.title like ?; "               //(1)

Query query = session.createQuery(hql);                             //(2)

query.setString(0, "%java%");                                 //(3)(中文分号)

List list = query.list();                                            //(4)

A. 第(1)行,Book与model之间必须有as关键字

B. 第(2)行,没有错误

C. 第(3)行应该为:query.setString(0, "java");

D. 第(4)行应该为:List llist = query.executeQuery();

 

42、 关于HQL与SQL,下列说法正确的有(  BC  )。【选两项】

A.HQL与SQL没有多少差别

B.HQL面向对象,而SQL操纵关系数据库

C.在HQL与SQL中,都包含select,insert,update,delete语句(逗号还是顿号)

D.HQL仅用于查询数据,不支持insert,update和delete语句(顿号还是逗号)

 

43、  在HQL语言中,Query对象特别提供了(  B  )方法,用于获得一个唯一行唯一列的对象。

A.list

B.uniqueResult

C.result

D.queryResult

 

44、 关于HQL查询,下列说法错误的是( A )。

A.HQL查询可以执行T-SQL语句,执行速度更快

B.HQL支持只查询对象的某几个属性,查询结果将保存在一个Object数组中

C.HQL支持统计函数

D.HQL语句可以实现类似PreparedStatement的效果

 

45、  在JAVA中,关于属性文件,下列选项说法正确的是( A )。

A.属性文件以名称和值的形式保存信息

B.属性文件不能写中文(???)

C.属性文件中能保存各种数据类型的信息

D.属性文件的文件扩展名是.xml

 

46、 在Hibernate中,下列关于HQL参数绑定的写法正确的有(  AD  )。【选两项】

String hql ="from Dept as model where model.deptName =? and model.createDate =? ";

A.第一个参数的位置为0

B.第一个参数的位置为1

C.设置参数的方法为:setEntity()

D.设置参数的方法为:setParameter()

 

47、  在Hibernate中,下面的程序代码对Customer的name属性进行了两次修改:

tx = session.beginTransaction();

Customer customer=(Customer)session.load(Customer.class,  new Long(1));

customer.setName("Jack");

customer.setName("Mike");

tx.commit();

则执行以上程序时,Hibernate需要向数据库提交(  B  )条update语句。

A.0

B.1

C.2

D.3

 

48、关于Criteria查询,下列说法正确的有(  ABC  )。【选三项】

A.Criteria查询通过面向对象化的设计将数据查询条件封装成一个对象

B.Criteria查询可读性强

C.Criteria查询符合Java程序员的编程习惯

D.Criteria查询没有HQL查询容易理解

 

49、 Criteria查询通过面向对象化的设计将数据查询条件封装为一个(  A  )。

A.对象

B.序列

C.类

D.HQL语句

 

50、 在Hibernate中,Criteria本身只是查询容器,其具体的条件是通过(  A  )方法添加至Criteria实例中。(题目有问题)

A.Criteria.add

B.Criteria.update

C.Criteria.save

D.Criteria.put

 

51、 在Hibernate的Criteria查询中,Expression对象具体描述了查询条件,其对应SQL条件中的field>=value的方法是(  AC  )。

A.Expression.eq

B.Expression.gt

C.Expression.ge

D.Expression.lt

 

52、 在Hibernate的Criteria查询中,Expression对象具体描述了查询条件,其中Expression.le对应的SQL条件是(  D  )。

A.field>value

B.field>=value

C.field<value

D.field<=value

 

53、   在Hibernate的Criteria查询中,从第5条记录开始查询的方法是(  A  )。

A.criteria.setFirstResult(4);

B.criteria.setFirstResult(5);

C.criteria.setMaxResult(4);

D.criteria.setMaxResult(5);

 

54、   在Hibernate的Criteria查询中,查询5条记录的方法是(  D  )。

A.criteria.setFirstResult(4);

B.criteria.setFirstResult(5);

C.criteria.setMaxResult(4);

D.criteria.setMaxResult(5);

 

55、 在Hibernate的Criteria查询中,下列按创建日期进行排序的方法是(  B  )。

A.criteria.addOrder(Order.asc("createDate"));

B.criteria.addOrder(Order.desc("createDate"));

C.criteria.saveOrder(Order.asc("createDate"));

D.criteria.saveOrder(Order.desc("createDate"));

 

56、  在Hibernate的Criteria查询中,有如下代码:

Criteria criteria = session.createCriteria(Dept.class);

criteria.add(Expression.eq("deptName", "人事部"));

其对应的HQL语句为(  C  )。

A.String hql = "from Dept";

B.String hql = "from Dept as model";

C.String hql = "from Dept as model where model.deptName =’人事部’";

D.String hql = "from Dept as model where model.deptName = 人事部";

 

57、  下面的代码对应的HQL语句是(  D  )。

Criteria criteria = session.createCriteria(Dept.class);

       criteria.addOrder(Order.asc("createDate"));

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";

 

58、  HQL语句:String hql ="from Dept as model order by model.deptName, model.createDate desc";所表达的意思为(  C  )。

A.查询部门,按照deptName的desc排序

B.查询部门,按照createDate的desc排序

C.查询部门,先按照deptName的desc排序,再按照createDate的desc排序

D.查询部门,deptName和createDate的desc排序没有先后之分

 

59、 下列选项中,对下面代码的说法正确的是(  D  )。

String hql = "from Dept as model where model.deptName = 人事部";

Query query = session.createQuery(hql);

List<Dept> deptList = query.list();

A.查询所有部门

B.查询部门名称为“人事部”的部门

C.查询出错

D.该HQL查询无法查出“人事部”这个部门

 

60、在Hibernate中,下列说法不正确的是(  D  )。

A.HQL是基于SQL的

B.HQL提供更加面向对象的封装

C.HQL是Hibernate官方推荐的查询方式

D.HQL提供的是面向关系型数据库的。。。。。。。。。。。。。。

 

61、 对于HQL中的as关键字,下列说法正确的是(  C  )。

A.必须要有

B.必须没有

C.可以有,也可以没有

D.以上说法均不正确

 

62、 在Hibernate中,用于比较字符串的like操作符“like '部%'”表示(  A  )。

A.所有以“部”开头的字符串

B.所有以“部”结尾的字符串

C.所有包括“部”的字符串

D.所有包括“部”且“部”不在开头和结尾的字符串

 

63、  在Hibernate中,用于比较字符串的like操作符“like '%部%'”表示(  C  )。

A.所有以“部”开头的字符串

B.所有以“部”结尾的字符串

C.所有包括“部”的字符串

D.所有包括“部”且“部”不在开头和结尾的字符串

 

64、  在Hibernate中,下列说法正确的有(  BD  )。【选两项】

A.HQL只用于查询数据

B.HQL具备更强大的功能,实体的更新与删除即其主要特征之一

C.delete与update子句为Hibernate2引入的新特性

D.delete与update子句为Hibernate3引入的新特性

 

65、在Hibernate的HQL查询中,有如下代码:

String hql = "select model.deptName,model.createDate from Dept as model ";

Query query = session.createQuery(hql);

则query.list();返回的是( D )。

A.所有部门的集合

B.所有部门名称的集合

C.所有部门创建日期的集合

D.所有包括部门名称和创建日期的对象数组的集合

 

版权所有,允许转载,转载请注明出处,侵权必究!