2021年MyBatis面试题30道

文章目录


前言

作为应届生,处于找工作中ing。今年2月份刚刚整理出来的面试题,时间比较赶就没有按照模块分类排序了。总而言之,顺序比较乱,希望大家耐着性子 看。如果实在介意,评论告知,我会视情况作修改的。另外如果大家觉得我找的答案不够清晰,欢迎私信或者评论只出,我看到都会去修改的!


面试题系列文章传送门

2021年后端开发面试题整理合集


MyBatis面试题内容

1. 模糊查询like语句该怎么写?

在Java代码中添加sql通配符。
在sql语句中拼接通配符,但是会引起sql注入

2. MyBatis 框架适用场合?

MyBatis专注于SQL本身,是一个足够灵活的DAO层解决方案。
对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis将是不错的选择。

3. MyBatis是如何进行分页的?分页插件的原理是什么?

Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页。也可以直接编写SQL实现分页或者使用分页插件。
分页插件的原理:实现MyBatis提供的接口来实现自定义插件,然后在插件的拦截方法内拦截待执行的SQL,最后重写SQL。

4. Dao 接口里的方法,参数不同时,方法能重载吗?

Mapper 接口里的方法,是不能重载的,因为是使用全限名+方法名的保存和寻找策略。Mapper 接口的工作原理是 JDK 动态代理,Mybatis 运行时会使用 JDK动态代理为 Mapper 接口生成代理对象 proxy,代理对象会拦截接口方法,转而执行 MapperStatement 所代表的 sql,然后将 sql 执行结果返回。

5. MyBatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?

使用resultMap标签,定义数据库列名和对象属性名之间的映射关系。
使用sql列的别名功能,将列的别名书写为对象属性名。
有了列名与属性名的映射关系后,MyBatis通过反射创建对象,同时使用反射给对象的属性逐一赋值并返回。

6. Mybaits 的优缺点?

优点:
基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重用。
与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接;
很好的与各种数据库兼容,能够与 Spring 很好的集成;
提供映射标签,支持对象与数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系组件维护。
缺点:
SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定要求。
QL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

7. 谈谈你对MyBatis的理解?

MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架,它内部封装了JDBC,开发时只需要关注SQL语句本身。程序员直接编写原生态SQL,可以严格控制sql执行性能,灵活度高。

8. MyBatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?

不同的Xml映射文件,如果配置了namespace,id可以重复。如果没有配置namespace&#x

  • 31
    点赞
  • 346
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个巨大的怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值