Mybatis概念面试题汇总

本文汇总了Mybatis的概念、优点、与Hibernate的区别、动态SQL的用途及执行原理、接口绑定及其好处、以及如何处理属性名与字段名不一致等问题,详细介绍了Mybatis的XML映射文件中ID的使用规则、动态SQL标签、Mapper接口调用要求、结果映射方式等,揭示了Mybatis在数据库操作中的核心类和执行器,还探讨了Mybatis的缓存、插件运行原理以及如何实现一对一、一对多关联查询等关键知识点。

Mybatis面试题目

1. 填空题 Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?

不同的Xml映射文件,如果配置了namespace,那么id____;如果没有配置
namespace,那么id____; (5分)
正确答案: 可以重复 不能重复

2. 填空题 #{}和 $ {}的区别是什么?#{}是_____,${}是_____。 (5分)

正确答案: 预编译处理 字符串替换

3. 多选题 对mybatis描述有误的是? (2分) A. MyBatis 是一个可以自定义 SQL、存储过程和高级映射的持久层框架

B. MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在 session 里面
C. Mybatis是一个全ORM(对象关系映射)框架,它内部封装了JDBC
D. MyBatis 只可以使用 XML来配置和映射原生信息
正确答案: C, D
题目解析

4. 多选题 Mybatis是如何将sql执行结果封装为目标对象并返回的 (2分) A. id

B. 标签
C. 使用sql列的别名
分数: 2
D. resultType
正确答案: B, C

5. 多选题 mybaties中模糊查询like语句的写法 (2分) A. select * from foo where bar like #{value}

B. select * from foo where bar like #{%value%}
C. select * from foo where bar like %#{value}%
D. select * from foo where bar like “%”${value}"%"
正确答案: A, D

6. 多选题 Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?

选择说法正确的 (2分) A. 不同的Xml映射文件,如果配置了namespace,那么id可以重复
B. 如果没有配置namespace,那么id不能重复
C. 如果没有配置namespace,id能重复
D. 不同的Xml映射文件,如果配置了namespace,那么id不可以重复
正确答案: A, B

7. 多选题 Mybatis的mapper接口调用时候的要求正确的是: (2分) A. Mapper接口方法名和Mapper.xml中定义的每个SQL的id相同;

B. Mapper接口方法的输入参数类型和mapper.xml中定义的每个sqlparameterType类型
相同
C. Mapper接口方法的输入输出参数类型和mapper.xml中定义的每个sql的resultType的
类型相同
D. Mapper.xml文件中的namespace,就是接口的名字
正确答案: A, B, C

8. 多选题 MyBatis内置类型别名有 (2分) A. _int

B. Integer
C. int
D. String
正确答案: A, C

9. 多选题 Mybatis动态sql标签有哪些? (2分) A. trim

B. foreach
C. set
D. than
正确答案: A, B, C

10. 多选题 Mybaits的优点正确的是? (2分) A. 基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影

响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理
B. 与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手
动开关连接
C. 很好的与各种数据库兼容
D. 它是一全个ORM框架,MyBatis不需要程序员自己编写Sql语句。
正确答案: A, B, C

11. 多选题 实体类中的属性名和表中的字段名不一样怎么处理?【选择二项】

(2分) A. 查询的sql语句中定义字段名的别名
分数: 2
B. 不用处理
C. 通过来映射字段名和实体类属性名
D. 通过来映射字段名和实体类属性名
正确答案: A, C

12. 多选题

(选择二项) (2分) A. JDBC
B. MANAGED
C. POOLED
D. JNOI
正确答案: A, B

13. 单选题 在mybatis的配置文件中,通过( )标签来设置实体类的别名。

(2分) A. properties
B. settings
C. typeAliases
D. dataSource
正确答案:c

14. 单选题 下列( )不属于 MyBatis全局配置文件中的标签 (2分) A. settings

B. select
C. plugins
D. properties
正确答案: B

15. 单选题 在Mybatis中,SQL映射文件中配置insert语句时,在SQL

SERVER中插入语句所在的表的ID为自动增长列,下列关于insert标签的说法,正
确的是( ) (2分) A. 必须要显示插入标识列中的值
B. 使用任何数据库都可以使用自动生成主键策略
C. useGeneratedKeys属性对update标签也有作用
D. 可以使用useGeneratedKeys属性允许标识列的自动增长用于生成主键
正确答案: D

16. 单选题 在 MyBatis 中,操作数据库的核心类是 (2分) A. SqlSessionFactory

B. SqlSession
C. Session
D. SqlSessionFactoryBuilder
正确答案: B

17. 单选题 在使用MyBatis的时候,除了可以使用@Param注解来实现多参数入参,还可以用()传递多个

参数值。 (2分) A. 用Map对象可以实现传递多参数值
B. 用List对象可以实现传递多参数值
C. 用数组的方式传递
D. 用Set集合的方式传递
正确答案: A

18. 单选题 在 MyBatis 中,配置结果映射时,使用( )标签实现多对1的关

联 (2分) A. many-one
B. one-many
C. association
D. collection
正确答案: C

19. 单选题 MyBatis操作数据库时的接口方法中,如果传入的参数名和动态sql

中使用时不一致,则需要使用( )注解修饰。 (2分) A. @RequestParam
B. @Parameter
C. @String
D. @Param
正确答案: D

20. 单选题 在mybatis中,配置结果映射时,使用( )标签实现一对多的关

联 (2分) A. many-one
B. one-many
C. association
D. collection
正确答案: D

21. 单选题 MyBatis 中对复杂数据映射到一个结果集的配置使用的标签是( )

(2分) A.
分数: 2
B.
C.
D.
正确答案: A

22. 单选题 在 MyBatis 动态 SQL 中,循环使用的标签名是( )。 (2分) A. for

B. while
C. foreach
D. do-while
正确答案: C

23. 单选题 看程序进行分析:Public UserselectUser(String name,String

area);
<select id="selectUser"resultMap=“BaseResultMap”>
select * fromuser_user_t whereuser_name = #{0} anduser_area=#{1}

#{0} 表示哪一个参数? (2分)
A. 程序报错
B. name
C. area
D. 0
正确答案: B

24. 单选题 MyBatis对JDBC访问数据库的代码进行封装,从而大大简化了数

据访问层的重复性代
码,它是针对三层架构中( )的解决方案 (2分) A. 表现层
分数: 2
B. 业务逻辑层
C. 持久化层
D. 数据库系统
正确答案: C

25. 单选题 MyBatis生命周期说法错误的是 (2分)

A. SqlSessionFactoryBuilder实例的最佳作用域是方法范围,也就是定义为本地方法变
量既可
B. SqlSessionFactory实例的生命周期应该在整个应用的执行期间都存在
C. SqlSession实例时线程不安全的,因此其生命周期应该是请求或方法范围
D. SqlSession实例通常定义为一个类的静态变量
正确答案: D

26. 单选题 以下不属于一对多的是? (2分) A. 帅哥和美女

B. 学生和班级
C. 投影和学生
D. 学校和班级
正确答案: A

27. 单选题 在MyBatis中,在进行select查询映射时,下列关于返回类型的说

法,正确的是( ) (2分) A. 只能是resultType
B. 只能是resultMap
C. 可以是resultType或resultMap
D. 以上说法都不正确
正确答案: C 分数: 2

28. 单选题 配置实体包的别名,正确的写法是 (2分)

 A. <typeAliases>
 <package name="com.swjd.bean"/>
 </typeAliases>
B. <typeAliases>
 <package name="com/swjd/bean"/>
 </typeAliases>
C. <typeAliase>
 <package name="com.swjd.bean"/>
 </typeAliase>
D. <package>
 <package name="com.swjd.bean"/>
 </package>

正确答案: A

29. 单选题 一辆汽车由多个零部件组成,且相同的零部件可适用于不同型号的汽车,则汽车实体集与零部件实体集之间的联系是( ) (2分)

A. 1 : M
B. 1:1
C. M : 1
D. M : N
正确答案: D

30. 单选题 编译Java程序的命令是 (2分)

A. appletviewer
B. javac
C. java
分数: 2
D. javadoc
正确答案: B

31. 单选题 在MyBatis数据库操作时,需要编写( )和对应的Xml文件,其

中Xml文件中编写的是对应Sql语句 (2分)
A. 接口和抽象方法
B. 普通类和普通方法
C. 抽象类和抽象方法
D. 普通类和抽象方法
正确答案: A

32. 单选题 在 MyBatis 中,配置结果映射时,使用( )标签实现1对多的关联 (2分)

A. many-one
B. one-many
C. association
D. collection
正确答案: D

33. 问答题 Mybatis动态sql有什么用?执行原理? (15分)

关键字
标签 1分
逻辑判断 1分
参考答案
Mybatis动态sql可以在Xml映射文件内,以标签的形式编写动态sql,执行原理
是根据表达式的值 完成逻辑判断并动态拼接sql的功能。

34. 问答题 如何获取自动生成的(主)键值? (15分)

关键字
usegeneratedkeys 1分
keyproperty 1分

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值