MyBatis面试题(1)

众所周知,MyBatis是ssm三大框架之一,也是在以后的开发过程中的一个重要的框架,相对其他的两个框架而言,MyBatis框架更容易理解一些;在开发工程师的面试中,面试官难免会问到MaBatis框架的问题,一下是我整理的一些关于MyBatis的小知识,希望能够帮助到大家

1.MyBatis中用于表示输入类型的属性名称是()
 A. resultTypere 
 B. parameterType 
 C. collection 
 D. returnType

正确答案:B

2.在 MyBatis 中,配置结果映射时,使用( )标签实现1对多的关联
A. many-one
B. one-many
C. association
D. collection

正确答案:D

3.在 MyBatis中调用SqlSessionFactoryBuilder的哪个方法用于获取SqlSession对象( )。
A.  getSession()
B.  openSession()
C.  session()
D.  showSqlSession()

正确答案:B

4. 在 MyBatis 中,操作数据库的核心类是
A.  SqlSessionFactory
B.  SqlSession
C.  Session
D.  SqlSessionFactoryBuilder

正确答案:B

5.MyBatis对JDBC访问数据库的代码进行封装,从而大大简化了数据访问层的重复性代码,它是针对三层架构中( )的解决方案
A.  表现层
B.  业务逻辑层
C.  持久化层
D.  数据库系统

正确答案:C

6.看程序进行分析:

Public UserselectUser(String name,String area);
<select id="selectUser"resultMap=“BaseResultMap”>
select * from user_user_t where user_name = #{0} and user_area=#{1}
</ select>
#{0} 表示哪一个参数?

A.  程序报错
B.  name
C.  area
D.  0

正确答案:B

7.使用MyBatis的mapper接口调用时有哪些要求()
A. Mapper接口方法名和mapper.xml中定义的每个sql的id相同
B. Mapper.xml文件中的namespace即是mapper接口的类路径
C. Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同;
D. Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同;

正确答案:ABCD

8.Mybatis是如何将sql执行结果封装为目标对象并返回的()
A. id
B. <resultMap>标签
C. 使用sql列的别名
D. resultType

正确答案:BC

9.如何获取自动生成的(主)键值()
A. 设置resultMap
B. 设置useGeneratedKeys
C. 设置keyProperty
D. 设置Property

正确答案:C

10.以下不属于一对多的是()
A. 帅哥和美女
B. 学生和班级
C. 投影和学生
D. 学校和班级

正确答案:A

11.对mybatis描述有误的是()
A. MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架
B. MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在 session 里面
C. Mybatis是一个全ORM(对象关系映射)框架,它内部封装了JDBC
D. MyBatis 只可以使用 XML来配置和映射原生信息

正确答案:CD

12.选择正确顺序的Mybatis编程步骤()
A. Step1:创建SQLSessionFactory 
   Step2:通过SQLSessionFactory创建SQLSession
   Step3:通过SQLSession执行数据库操作 
   Step4:调用session.close()关闭会话
B. Step1:创建SQLSession 
   Step2:通过SQLSession执行数据库操作 
   Step3:调用sessionmit()提交事物 
   Step4:调用session.close()关闭会话
C. Step1:创建SQLSession 
   Step2:通过SQLSession创建SQLSessionFactory 
   Step3:通过SQLSessionFactory 执行数据库操作 
   Step4:调用sessionmit()提交事物 Step5:调用session.close()关闭会话
D. Step1:创建SQLSessionFactory 
   Step2:通过SQLSessionFactory创建SQLSession 
   Step3:通过SQLSession执行数据库操作 
   Step4:调用sessionmit()提交事物 
   Step5:调用session.close()关闭会话

正确答案:D

13.(多选)Mybatis的mapper接口调用时候的要求正确的是
A. Mapper接口方法名和Mapper.xml中定义的每个SQL的id相同;
B. Mapper接口方法的输入参数类型和mapper.xml中定义的每个sqlparameterType类型相同
C. Mapper接口方法的输入输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同
D. Mapper.xml文件中的namespace,就是接口的名字

正确答案:ABC

14.一辆汽车由多个零部件组成,且相同的零部件可适用于不同型号的汽车,则汽车实体集与零部件实体集之间的联系是( )
A. 1:M
B. 1:1
C. M:1
D. M:N

正确答案:D

15.(填空)模糊查询like语句该怎么写?
第1种:在Java代码中添加____。
第2种:在sql语句中添加____,会引起sql注入

答案:sql通配符,拼接通配符

16.(填空)Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?不同的Xml映射文件,如果配置了namespace,那么id____;如果没有配置namespace,那么id____;

答案:可以重复,不可以重复

17.以下关于MyBatis参数处理的说法错误的是()
A. 当传入单个参数时, 可以直接取出参数并赋值给xml文件
B. 当传入多个参数时, 可以直接取出参数并赋值给xml文件
C. 当传入多个参数时, 可以使用Map接口的方式封装参数并取得值
D. 传入多个参数时,可以使用注解@ param的方式标注参数

正确答案:B

18.关于MyBatis中传递多参数的情况,如果参数封装成了Student类,那么在Mapper.xml中获取数据,应该怎么操作(
A. 条件获取数据可以通过# {属性名}来获得
B. 条件获取数据可以通过#{arg0}来获得
C. 条件获取数据可以通过#{arg1}来获得
D. 条件获取数据可以通过#{属 性名}或者#(arg0}来获得

正确答案:A

19.以下关于MyBatis传递数组参数的说法错误的是()
A. 在映射文件中取得数组值 应该通过<forEach>标签
B. <forEach> 标签可以应用于set、List以及 数组的取值
C. 传递数组的值,和多参数传值一样,在映射文件中只能通过<forEach>取值
D. <forEach> 标签的open和close属性用于写开始和结束标签;

正确答案:C

20.(填空)四个核心接口是:()用于执行CRUD操作、()处理SQL的参数、()处理返回结果集、()用于执行SQL语句。

答案:Executor , ParameterHandler ,ResultSetHandler,StatementHandler

21.(填空)MyBatis中提供了一级缓存和二级缓存,其中()默认存在,不可控制,同一SqlSession范围内的操作共享该缓存,增、删、改后将()。

答案:一级缓存 , 清除缓存

以上就是我为大家整理的部分关于MyBatis的小知识,同时也欢迎大家在评论区留言探讨更多关于MyBatis的知识。

更多推荐

MyBatis面试题1