您的位置:首页 > 其它

MyBatis要不要学?京东内部的这份MyBatis文档真香!

2020-11-30 21:39 681 查看

前言

很多人说 mybatis重不重要?这里再说下,互联网公司基本都是用mybatis做为持久层框架的,所以mybatis是一定要学的。

程序员80%时间都在CRUD,对了mybatis就是干这个的

什么是 MyBatis ?

MyBatis是一个实现了JPA规范的用来连接数据库并对其进行增删改查操作的开源框架 (就和传统的JDBC一样,就是个连接数据库的东西),其实,它底层就是一个JDBC封装的组件。MyBatis的前身是Ibatis,Ibatis创建与2002年最初为Apache下面的一个开源项目,2010迁移到google code下面并改名为MyBatis。

MyBatis虽然实现了JPA但是它并不是一个完完全全的ORM组件,而是一个基于SQL开发的半ORM组件。

而Hibernate是一个完完全全的ORM组件,它是完全基于对象来操作数据库中的记录,并不和MyBatis一样是一个假把式。

为什么我们要⽤Mybatis?

⽆论是Mybatis、Hibernate都是ORM的⼀种实现框架,都是对JDBC的⼀种封装!

[图片上传失败...(image-a396f-1606743201911)]

到⽬前为⽌,我们已经在持久层中学了⼏种技术了...

  • Hibernate

  • jdbc

  • SpringDAO

那我们为啥还要学Mybatis呢???现在Mybatis在业内⼤⾏其道,那为啥他能那么⽕呢??

Hibernate是⼀个⽐较⽼旧的框架,⽤过他的同学都知道,只要你会⽤,⽤起来⼗分舒服...啥sql代码都不⽤写...但是呢,它也是有的缺点::处理复杂业务时,灵活度差, 复杂的HQL难写难理解,例如多表查询的HQL语句,⽽JDBC很容易理解,就那么⼏个固定的步骤,就是开发起来太麻烦了,因为什么都要我们⾃⼰⼲..

我们可以认为,Mybatis就是jdbc和Hibernate之间的⼀个平衡点...毕竟现在业界都是⽤这个框架,我们也不能不学呀!

今天分享字节跳动珍藏版的Mybatis文档,可以帮助你快速入门Mybatis!
关注公种浩:程序员追风,回复011 领取这份mybatisP文档(含思维导图和面试题)

关于Mybatis的知识点总结了一个思维导图,分享给大家。

互联网公司常问的Mybatis面试题总结

1.为什么需要预编译?

2.Mybatis都有哪些Executor执行器?它们之间的区别是什么?

3.Mybatis中如何指定使用哪一种Executor执行器?

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

5.# {}和${}的区别?

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

7.在mapper中如何传递多个参数?

8.Mybatis如何执行批量操作?

9.如何获得生成的主键?

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

11.Mapper 编写有哪几种方式?

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

13.使用MyBatis的mapper接口调用时有哪些要求?

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

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

16.简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?

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

18.MyBatis中所有标签?

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

20.Mybatis是否可以映射Enum枚举类?

21.Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理不?

22.分页方式?

23.简述Mybatis的插件运行原理,以及如何编写一个插件?

24.Mybatis的一级、二级缓存?

25.pageHelper原理?

常见的这些Mybatis面试题答案都整理成了PDF文档。

总结

学习是一辈子的事情,学完一段时间之后,想要检查学习效果如何,其实最好的方法就是可自己去总结一下。比如我在学习的时候会自己做笔记,然后自己再总结,自己的做的笔记也可方便后续的复习,且都是自己的理解。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: