天天看点

Hibernate考试试题 (题库)

Hibernate考试试题 (题库)

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

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

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

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

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

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

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

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

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

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

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

A.它是线程安全的

B.它不是线程安全的

C.它是轻量级的

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

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

A.它是线程安全的

B.它不是线程安全的

C.它是轻量级的

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

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

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

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

A.load

B.save

C.open

D.delete

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

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

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

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

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

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

A.save

B.update

C.add

D.saveOrUpdate

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

A.表现层

B.业务逻辑层

C.持久化层

D.数据库系统

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

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

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

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

D.数据的内容是变化的

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

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

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

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

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

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

A.数据库连接信息

B.数据库类型(dialect)

C.show_sql参数

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

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

A.all

B.false     

C.true  

D.none

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

A.all

B.false     

C.true  

D.none

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

A.all

B.false     

C.true  

D.none

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

A.hilo

B.native

C.assign

D.indentity

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

A.表述层

B.业务逻辑层

C.控制层

D.数据层

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

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

B.提高代码的可重用性

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

D.具有更好的可扩展性

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

A.表

B.表的行

C.表的列

D.表中行的数据

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

A.表对应对象

B.记录对应对象

C.表的字段对应类方法

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

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

A.瞬态

B.持久态

C.隔离态

D.游离态

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

A.name

B.type

C.column

D.lazy

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

A.null

B.none

C.ture

D.false

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

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

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

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

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

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

A.all

B.no     

C.none  

D.delete

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

A.all

B.save-update     

C.none  

D.delete

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

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

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

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

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

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

A.none

B.save

C.save-update

D.delete

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

A.<set>

B.<one-to-many>

C.<many-to-one>

D.<property>

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

<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查询中,下列说法正确的是(     )。

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

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

C.支持子查询

D.支持分页查询

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

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

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

C.HQL是基于SQL的

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

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

A.从第3条记录开始

B.从第4条记录开始

C.查询3条记录

D.查询4条记录

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

A.从第3条记录开始

B.从第4条记录开始

C.查询3条记录

D.查询4条记录

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

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查询中,下列说法不正确的是(     )。

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

B.HQL支持where子句

C.HQL支持as子句

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

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

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查询,下列说法正确的有(    )。【选两项】

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

B.HQL支持不统计函数

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

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

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

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,下列说法正确的有(    )。【选两项】

A.HQL与SQL没有多少差别

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

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

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

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

A.list

B.uniqueResult

C.result

D.queryResult

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

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

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

C.HQL支持统计函数

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

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

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

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

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

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

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

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需要向数据库提交(    )条update语句。

A.0

B.1

C.2

D.3

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

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

B.Criteria查询可读性强

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

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

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

A.对象

B.序列

C.类

D.HQL语句

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

A.Criteria.add

B.Criteria.update

C.Criteria.save

D.Criteria.put

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

A.Expression.eq

B.Expression.gt

C.Expression.ge

D.Expression.lt

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

A.field>value

B.field>=value

C.field<value

D.field<=value

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

A.criteria.setFirstResult(4);

B.criteria.setFirstResult(5);

C.criteria.setMaxResult(4);

D.criteria.setMaxResult(5);

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

A.criteria.setFirstResult(4);

B.criteria.setFirstResult(5);

C.criteria.setMaxResult(4);

D.criteria.setMaxResult(5);

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

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语句为(    )。

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语句是(    )。

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";所表达的意思为(    )。

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

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

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

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

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

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中,下列说法不正确的是(    )。

A.HQL是基于SQL的

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

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

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

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

A.必须要有

B.必须没有

C.可以有,也可以没有

D.以上说法均不正确

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

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

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

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

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

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

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

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

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

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

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

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();返回的是(    )。

A.所有部门的集合

B.所有部门名称的集合

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

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

继续阅读