Mybatis概念面试题汇总

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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分
keyprope

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值