Hibernate试题解析
1.在Hibernate中,以下关于主键生成器说法错误的是(AC)。
A.increment可以用于类型为long、short或byte的主键(byte类型不可以)
B.identity用于如SQL Server、DB2、MySQL等支持标识列的数据库
C.sequence用于如Oracle、SQL Server等支持序列的数据库
D.native由Hibernate根据底层数据库自行判断采用何种主键生成策略,是由使用的数据库生成主键的值
解析:A.都是变相的int
2.在Hibernate中,关于脏检查和刷新缓存说法正确的是(AB)。
A.当事务提交时,会发生脏检查
B.Session的flush( )方法是刷新缓存的方法
C.在执行Session的commit( )方法之前不会调用Session的flush( )方法
D.编写代码时,调用commit( )方法之前要调用flush( )方法
解析:
脏检查是事务提交的时候进行的
刷新缓存:刷新缓存的事情就是脏检查
两种方式:
方式一:事务提交
方式二:session.flush();
3.使用HQL查询所有部门信息,以下正确的是(AD)。
A.from Dept
B.select * from cn.jbit.demo.entity.Dept
C.select Dept from cn.jbit.demo.entity.Dept d
D.select d from Dept d
解析:B.* 不能有
D.应该select d 写别名
4.关于Query接口的list( )和iterate( )方法,说法正确的是(AD)。
A.执行list( )方法,查询所有符合条件的记录
B.执行iterate( )方法,查询所有符合条件的记录
C.执行list( )方法,查询出所有符合条件的主键值
D.执行iterate ( )方法,查询出所有符合条件的主键值
5.在HQL中,关于Query接口绑定参数的方法,说法正确的是(ABCD)。
A.setParameter( )方法用于绑定任意类型的参数
B.setParameter( )有重载的方法
C.setProperties( )有重载的方法
D.setProperties( )方法用于绑定命名参数
6.在Hibernate中,关于以下映射配置,说法错误的是(D)。
<hibernate-mapping>
<class name="cn.jbit.hibernatedemo.entity.Emp" table="EMP" schema="scott">
<id name="empNo" column="EMPNO" type="java.lang.Integer">
<generator class="assigned"/>
</id>
<property name="salary" type="java.lang.Double" column="SAL"/>
<property name="hireDate" type="java.util.Date"/>
<many-to-one
name="dept"
column="DEPTNO"
class="cn.jbit.hibernatedemo.entity.Dept"
/>
</class>
</hibernate-mapping>
A.此配置信息描述了cn.jbit.hibernatedemo.entity.Emp类和EMP表的映射
B.描述的是scott用户的EMP表
C.<many-to-one>标签中的name属性值dept是cn.jbit.hibernatedemo.entity.Emp类的属性名
D.<many-to-one>标签中的column属性值DEPTNO是dept表的主键名
解析:Column:数据表里面EMP对应的外键列
7.在Hibernate映射文件中,关于inverse属性说法正确的是(ACD)。
A.inverse属性有两个值:true、false
B.<many-to-one>标签有inverse属性
C.<set>标签有inverse属性
D.inverse属性用于指定维护关联关系的那一方
解析:<many-to-one>标签没有inverse属性
8.在Hibernate映射文件中,关于延迟加载配置说法错误的是(BD)
A.<class>标签中lazy属性可选值:true、false
B.<set>标签中lazy属性可选值:true、proxy和no-proxy
解析:<set>标签中lazy属性可选值有true,false,extra。
C.< set>标签中lazy属性可选值:true、extra和false
D.<many-to-one>标签中lazy属性可选值:proxy、true和false
解析:<many-to-one>标签中lazy属性可选值有:false,proxy和no-proxy
9.在Hibernate映射文件中,关于<component>标签说法正确的是(ABC)。
A.<component>标签用来映射组件类
B.<component>标签通过<parent>指定组件类所属的整体类
C.<component>标签通过<property>指定组件类的属性
D.<component>标签有id、name、class属性
解析:没有id的属性
10.MyBatis指定配置文件的根元素使用的是(B)。
A.<sqlMapConfig>
B.<configuration>
C.<setting>
D.<environments>
11.在MyBatis中,ExecutorType的值包括( ABD)。
A.ExecutorType.SIMPLE
B.ExecutorType.BATCH
C.ExecutorType.EXECUTE
D.ExecutorType.REUSE
解析:

public final enum org.apache.ibatis.session.ExecutorType {
// Field descriptor #8 Lorg/apache/ibatis/session/ExecutorType;
public static final enum org.apache.ibatis.session.ExecutorType SIMPLE;
// Field descriptor #8 Lorg/apache/ibatis/session/ExecutorType;
public static final enum org.apache.ibatis.session.ExecutorType REUSE;
// Field descriptor #8 Lorg/apache/ibatis/session/ExecutorType;
public static final enum org.apache.ibatis.session.ExecutorType BATCH;
}

12.关于Hibernate缓存说法错误的是(CD)。
A.Hibernate缓存一般分为三类:一级缓存、二级缓存和查询缓存
B.Session的evict( )方法用于从缓存中清除指定的持久化对象
C.Session的clear( )方法用于刷新缓存
D.Session的flush( )方法用于从缓存中清除所有持久化对象
解析:C.D clear()和flush()方法写反了
13.关于HQL的连接查询,说法错误的是(D)。
A.inner join 或 join用于内连接
B.inner join fetch或 join fetch用于迫切内连接
C.left outer join fetch 或 left join fetch用于迫切左外连接
D.right outer join fetch 或 right join fetch用于迫切右外连接
解析:没有迫切右外连接
14.关于Hibernate批量处理数据说法正确的是(CD)。
A.使用HQL进行批量操作,Hibernate不支持批量插入
解析:支持批量
B.使用JDBC API进行批量操作,SQL语句中涉及的数据会被加载到Session缓存,占用内存空间
解析:不会被加载到session缓存中,不会占用内存空间
C.使用Session进行批量操作,数据会被加载到Session缓存,需注意刷新并清空缓存
D.使用Session进行批量操作,适用于需要通过代码处理的复杂的业务逻辑场景
15.关于HQL的聚合函数使用,说法正确的是(ABCD)。
A.select count(*) from Dept d用于统计部门个数
B.select sum(e.salary) from Emp e用于汇总员工工资总额
C.select max(e.hiredate) from Emp e用于找到最新入职的员工的入职时间
D.select min(e.hiredate) from Emp e用于找到最早入职的员工的入职时间
16.关于HQL子查询中,说法错误的是(C)。
A.size( )或size用于获取集合中元素的数目
B.elements( )用于获取集合中的所有元素
C.any关键字用于子查询语句返回所有记录
D.in关键字与“=any”意思相同
解析:any 返回的是任意一条记录
17.关于原生SQL查询和命名查询,说法正确的是(ABC)。
A.执行原生SQL,需使用SQLQuery对象
B.SQLQuery是一个接口,继承了Query接口
C.Hibernate支持在映射文件中定义字符串形式的查询语句,这样的语句是命名查询语句
D.命名查询语句只能是HQL语句,不能是SQL语句
解析:可以是SQL语句
18.在 Hibernate中,关于映射Oracle中的BLOB和CLOB类型的方法,说法正确的是(BCD)。
A.CLOB类型只能映射为java.lang.String
B.BLOB类型可以映射为java.sql.Blob
C.BLOB类型可以映射为byte[]
D.CLOB类型可以映射为java.lang.String或java.sql.Clob
解析:CLOB类型可以映射为java.lang.String或java.sql.Clob
19.在Hibernate中,关于Criteria运算方法说法错误的是(CD)。
A.Restrictions.ge( )方法等同于HQL运算符 >=
B.Restrictions.like("empName","s",MatchMode.START)方法用于查找姓名以s开头的员工
C.Restrictions.disjunction( )方法用于指定多个逻辑与
D.Restrictions.in( )方法只能用于数组
20.在Hibernate中,关于注解说法正确的是(ABD)。
A.@Id用于声明持久化类的唯一标识,对应于数据表中的主键
B.@Cloumn用于将属性映射到列
C.@Transient用于忽略该属性,需要持久化到数据库
D.@GeneratedValue用于定义主键值的生成策略
解析:@Transient 忽略这些字段和属性,不用持久化到数据库
21.下列关于同义词的说法,选项正确的是(C)。
A.只能为表创建同义词,不能为视图创建同义词
B.同义词只能用于引用其他用户创建的表
C.公有同义词和私有同义词对同一个表可以同名
D.使用Drop Synonym语句删除同义词的同时,同义词引用的表也无效
22.评估CREATE TABLE 语句:
CREATE TABLE products
(
product_id NUMBER(6) CONSTRAINT prod_id_pk PRIMARY KEY,
product_name VARCHAR2(15)
)
下列关于prod_id_pk选项正确的是(B)。
A.可以被创建,但需要唯一索引用手工创建
B.可以被创建并且会自动创建唯一索引
C.可以被创建并且会自动创建非唯一索引
D.可以被创建但不可以使用,因为没有指定索引
23.下列创建序列的SQL语句:
CREATE SEQUENCE seq1
START WITH 100
INCREMENT BY 10
MINVALUE 1
MAXVALUE 200
CYCLE
NOCACHE;
序列seq1的生成的值已经到最大值200,再执行下列语句:
SELECT seq1.nextval FROM dual;
下列显式正确值的选项是(A)。
A.1
B.10
C.100
D.报错
24.A_oe和A_hr是数据库中的2个用户,A_oe下有一个表Orders,执行下列语句如下:
CREATE ROLE r1;
GRNAT SELECT,INSERT ON A_oe.orders to r1;
GRANT r1 to A_hr;
GRANT SELECT ON A_oe.orders To A_hr;
REVOKE SELECT ON A_oe.orders FROM A_hr;
执行上面语句后结果正确的是(A)。
A.A_hr能够查询A_oe.orders表
B.A_hr不能够查询A_oe.orders表
C.REVOKE语句将撤销A_hr的SELECT权限同时也从r1角色撤销SELECT权限
D.REVOKE语句将报错,因为SELECT权限已经被r1角色授予
25.对于视图,下列语句正确的是(CD)。
A.有列别名的视图不能被修改
B.一个复杂的视图定义中使用子查询不能包含聚合(分组)函数和连接
C.如果一个视图定义中包含DISTINCT关键字,则不能够通过视图进行删除
D.创建视图语法中OR REPLACE 选项被使用,目的是在没有删除视图的情况下修改已存在的视图定义。
Hibernate试题解析的更多相关文章
- 2019年 Java 面试题解析
2019年 Java 面试题解析 转载地址:https://www.cnblogs.com/Zz-maker/p/11193930.html 作者: Zz_maker 包含的模块: 本文分为十九个模块 ...
- .NET面试题解析(11)-SQL语言基础及数据库基本原理
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 本文内容涉及到基本SQL语法,数据的基本存储原理,数据库一些概念.数据优化等.抱砖引玉,权当一个综合复习! ...
- .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引
系列文章索引: .NET面试题解析(01)-值类型与引用类型 .NET面试题解析(02)-拆箱与装箱 .NET面试题解析(03)-string与字符操作 .NET面试题解析(04)-类型.方法与继承 ...
- .NET面试题解析(07)-多线程编程与线程同步
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 关于线程的知识点其实是很多的,比如多线程编程.线程上下文.异步编程.线程同步构造.GUI的跨线程访问等等, ...
- .NET面试题解析(06)-GC与内存管理
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 GC作为.NET的重要核心基础,是必须要了解的.本文主要侧重于GC内存管理中的一些关键点,如要要全面深入了 ...
- .NET面试题解析(05)-常量、字段、属性、特性与委托
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 弱小和无知不是生存的障碍,傲慢才是!——<三体> 常见面试题目: 1. const和reado ...
- .NET面试题解析(04)-类型、方法与继承
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 做技术是清苦的.一个人,一台机器,相对无言,代码纷飞,bug无情.须梦里挑灯,冥思苦想,肝血暗耗,板凳坐穿 ...
- .NET面试题解析(03)-string与字符串操作
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 字符串可以说是C#开发中最常用的类型了,也是对系统性能影响很关键的类型,熟练掌握字符串的操作非常重要. 常 ...
- .NET面试题解析(02)-拆箱与装箱
系列文章目录地址: .NET面试题解析(00)-开篇来谈谈面试 & 系列文章索引 装箱和拆箱几乎是所有面试题中必考之一,看上去简单,就往往容易被忽视.其实它一点都不简单的,一个简单的问题也 ...
随机推荐
- [置顶] Android的IPC访问控制设计与实现
3.3.1 IPC钩子函数设计与实现 IPC Binder是Android最重要的进程间通信机制,因此,必须在此实施强制访问控制. 1. 修改secuirty.h 打开终端shell,输入指令“cd ...
- Android的Recovery中font_10x10.h字库文件制作
任务是要汉化Android中的Recovery,就了解了bootable/recovery/minui/font_10x18.h这个英文字库的来历,最终汉化的时候并没有自己汉字字库,用的github上 ...
- 关于MyEclipse查看底层源码出现source not found的问题(MyEclipse、Eclipse配置JAD)
一.MyEclipse 第一步: 下载jad.exe文件:jad下载地址 eclipse插件:net.sf.jadclipse_版本号.jar下载地址一 net.sf.jadclipse_版 ...
- excel运行最多行数
2003及以前版本为65536(即6万多)行,256列2007版:1048576(即1百零多万)行,16384(即1千多)列
- SqlServer 数据库进行定时自动的执行脚本
需求:数据库进行自动执行脚本操作,有些数据库操作就不需要写程序来定时执行,完全可以交给我们SqlServer客户端代理来做,下面的步骤,我是结合前一篇文章的SqlServer不同服务器数据库之间数据传 ...
- 解决SurfaceView设置透明造成覆盖其他组件的替代方案
之前在项目里面绘制摇杆圆盘使用SurfaceView来实现,同时设置SurfaceView透明,但是这样会造成SurfaceView的组件会覆盖其他的组件,一般情况没有关系,而不一般的情况就是有类似上 ...
- 使用PyQt4写界面后台程序方法总结
使用PyQt4编写界面后台程序的方法总结 一.怎么建立多线程 界面程序如果有稍微耗时一点的任务如果不使用多线程就会界面卡死,所以大多数情况会使用到多线程.PyQt4自己有多线程的机制,可以派生多线程类 ...
- Activiti工作流学习-----基于5.19.0版本(7)
八.BPMN 2.0流程图详解 BPMN 2.0的标准的出现是好事,用户不在被某个工作流开发商绑架或者在工作流中开发妥协,Activiti作为BPMN标准的一套解决方案,使得用户在选择工作流框架时可以 ...
- socket学习及各类错误码(部分转)
如果本地有多个网卡(即多个ip),要指定本地发送网卡,则在建立的socket上bind所指定的网卡进行connect和send操作.例子程序如下: #include <stdio.h>#i ...
- MySQL性能分析脚本
#!/usr/bin/python #!coding:utf-8 import mysql.connector as connector import json """ ...