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.所有包括部门名称和创建日期的对象数组的集合