1、什么是 Mybatis?

1、Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高。

2、MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO 映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

3、通过 xml 文件或注解的方式将要执行的各种 statement 配置起来,并通过java 对象和 statement 中 sql 的动态参数进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射为 java 对象并返回。(从执行 sql 到返回 result 的过程)。

2、Mybaits 的优点:

1、基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL 写在 XML 里,解除 sql 与程序代码的耦合,便于统一管理;提供 XML标签,支持编写动态 SQL 语句,并可重用。

2、与 JDBC 相比,减少了 50%以上的代码量,消除了 JDBC 大量冗余的代码,不需要手动开关连接;

3、很好的与各种数据库兼容(因为 MyBatis 使用 JDBC 来连接数据库,所以只要JDBC 支持的数据库 MyBatis 都支持)。

4、能够与 Spring 很好的集成;

5、提供映射标签,支持对象与数据库的 ORM 字段关系映射;提供对象关系映射标签,支持对象关系组件维护。

3、MyBatis 框架的缺点:

1、SQL 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL 语句的功底有一定要求。

2、SQL 语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

4、MyBatis 框架适用场合:

1、MyBatis 专注于 SQL 本身,是一个足够灵活的 DAO 层解决方案。

2、对性能的要求很高,或者需求变化较多的项目,如互联网项目,MyBatis 将是不错的选择。

5、MyBatis 与 Hibernate 有哪些不同?

1、Mybatis 和 hibernate 不同,它不完全是一个 ORM 框架,因为 MyBatis 需要程序员自己编写 Sql 语句。

2、Mybatis 直接编写原生态 sql,可以严格控制 sql 执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,因为这类软件需求变化频繁,一但需求变化要求迅速输出成果。但是灵活的前提是 mybatis 无法做到数据库无关性,如果需要实现支持多种数据库的软件,则需要自定义多套 sql 映射文件,工作量大。

3、Hibernate 对象/关系映射能力强,数据库无关性好,对于关系模型要求高的软件,如果用 hibernate 开发可以节省很多代码,提高效率。

6、#{}和${}的区别是什么?

#{}是预编译处理,${}是字符串替换。

Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的

set 方法来赋值;

Mybatis 在处理${}时,就是把${}替换成变量的值。

使用#{}可以有效的防止 SQL 注入,提高系统安全性。

7、当实体类中的属性名和表中的字段名不一样 ,怎么办 ?

第 1 种: 通过在查询的 sql 语句中定义字段名的别名,让字段名的别名和实体类的属性名一致。

第 2 种: 通过来映射字段名和实体类属性名的一一对应的关系。

8、 模糊查询 like 语句该怎么写?

9、通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,方法能重载吗?

10、Mybatis 是如何进行分页的?分页插件的原理是什么?

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

12、如何执行批量插入?

13、如何获取自动生成的(主)键值?

14、在 mapper 中如何传递多个参数?

15、Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sql?

16、Xml 映射文件中,除了常见的 select|insert|updae|delete标签之外,还有哪些标签?

17、为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?

18、 一对一、一对多的关联查询 ?

19、 MyBatis 实现一对一有几种方式?具体怎么操作的?

20、MyBatis 实现一对多有几种方式,怎么操作的?

21、Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?

22、Mybatis 的一级、二级缓存:

23、什么是 MyBatis 的接口绑定?有哪些实现方式?

24、使用 MyBatis 的 mapper 接口调用时有哪些要求?

25、Mapper 编写有哪几种方式?

26、简述 Mybatis 的插件运行原理,以及如何编写一个插件。

上面都是一部分的面试真题,大家觉得对自己有用的话,可以学以致用,最后就是我备战面试也收集看很多面试中经常会问到的核心知识点,面试真题等等

大家需要上面面试真题,以及更多大厂的面试真题的话,关注小编+转发文章+私信[架构资料]

重要的事情说三遍:转发+转发+转发

mybatis 忽略实体字段_27道mybatis面试真题,你能答对几道?相关推荐

  1. 凭借这1080道java面试真题,成功拿到阿里,京东等八家大厂offer

    2019年还有一个多就要月结束了,时间一眨眼就过去了.今年面试有没有被面试官虐呢,明年跳槽想跳去哪个大厂呢,这是个问题,今年为了找到好工作,特地的从朋友那里讨来一份面试圣经(阿里某大牛),1080道面 ...

  2. 爆肝整理|BAT100道JavaScrip面试真题集锦(附解析)

    最近听说一新词"金八银九". 说到它是如何衍生的,就必须提到下半年严峻的求职形势.大厂的 HC 本就不多,加之市场上求职人员的骤然增加, 8,9 两月就将迎来一波招聘小高峰. 向几 ...

  3. 2022软件测试面试题 200道大厂面试真题 刷完拿到10k职位

    系列文章目录 提示:阅读本章之前,请先阅读目录 文章目录 系列文章目录 前言 1. 编写测试用例时,一般会用到哪些方法进行测试用例的设计? 2. 测试过程中,为什么要做接口测试? 3. 测试过程中,如 ...

  4. 各大互联网公司面经分享:Java全栈知识+1500道大厂面试真题

    这篇文章给大家分享一下我遇到的一些质量较高的面试经历,具体经过就不多说了,就把面试题打出来供各位读者老哥参考如有不全的地方,各位海涵. 猿辅导 八皇后问题 求二叉树的最长距离(任意两个节点的路径 中最 ...

  5. 各大厂面经分享:Java全栈知识+1500道大厂面试真题

    这篇文章给大家分享一下我遇到的一些质量较高的面试经历,具体经过就不多说了,就把面试题打出来供各位读者老哥参考如有不全的地方,各位海涵. 猿辅导 八皇后问题 求二叉树的最长距离(任意两个节点的路径 中最 ...

  6. 天呐!350道Java面试真题分享

    前言 最其实不管什么时候,找工作都跑不了面试.目前很多小编都做了面试手册了,那就是别人家的孩子都有糖了,作为一个自觉的小编,必须搞. 容我先絮叨一下,制作这个面试手册差不多花了3个多星期时间,过程还是 ...

  7. 千道Java面试真题整理系列:MySQL灵魂五十问,在遇面试也不怕.

    1.MySQL 中有哪几种锁? 1.表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 2.行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最低,并 ...

  8. 110道Python面试真题

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 整理了一些Python面试题和面试简历,如果需要,可以参考学习 具体面试题如下: 1. ...

  9. 千道Java面试真题整理系列:MySQL灵魂五十问,在遇面试也不怕!

    1.MySQL 中有哪几种锁? 表级锁:开销小,加锁快:不会出现死锁:锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最低,并发度也最 ...

最新文章

  1. Pytorch | BERT模型实现,提供转换脚本【横扫NLP】
  2. CSS的一个FAQ问题——浮动层覆盖问题!!!
  3. ab -压测模拟并发的工具
  4. 将iPad, iPhone直投屏幕用于TEASOFT课程录制
  5. 说说身边产品的用户体验
  6. C语言实现测量数据处理,求出实际值的范围
  7. NYOJ 518 取球游戏
  8. 二十万字C/C++、嵌入式软开面试题全集宝典九
  9. 经典C语言程序100例之四三
  10. 求虚拟机11.0密钥
  11. f分布表完整图_分布式计算引擎之星——Spark
  12. 机器学习入门系列(1)--机器学习概览
  13. RSA公钥文件(PEM)解析
  14. c++ 数据结构之 线段树
  15. Android开发之ListView中Adapter的优化
  16. html 随机抽奖,随机抽奖页面js
  17. 移动开发用户行为分析神器之--AppSee!
  18. cesium之三维漫游飞行效果实现篇(转)
  19. python编写摇骰子游戏_python摇骰子猜大小的小游戏
  20. JVM运行参数之-X和-XX参数

热门文章

  1. matlab根据结构体数组,用邻接矩阵和序遍历创建树形结构:
  2. Docker与自动化测试及其测试实践
  3. 成为 Linux 终端高手的七种武器
  4. DRBD 高可用配置详解(转)
  5. best introduction to camera calibration
  6. C# 文件搬运(从一个文件夹Copy至另一个文件夹)
  7. dojo Quick Start/dojo入门手册--面向对象,定义Class
  8. .net 面试题系列文章一(附答案)
  9. idea快速从dao层跳转到mapper.xml文件的插件
  10. python算法与数据结构-二叉树的遍历