不少人说 mybatis重不重要?这里再说下,互联网公司基本都是用mybatis作为持久层框架的,因此mybatis是必定要学的。程序员
程序员80%时间都在CRUD,对了mybatis就是干这个的面试
MyBatis是一个实现了JPA规范的用来链接数据库并对其进行增删改查操做的开源框架 (就和传统的JDBC同样,就是个链接数据库的东西),其实,它底层就是一个JDBC封装的组件。MyBatis的前身是Ibatis,Ibatis建立与2002年最初为Apache下面的一个开源项目,2010迁移到google code下面并更名为MyBatis。sql
MyBatis虽然实现了JPA可是它并非一个完彻底全的ORM组件,而是一个基于SQL开发的半ORM组件。数据库
而Hibernate是一个完彻底全的ORM组件,它是彻底基于对象来操做数据库中的记录,并不和MyBatis同样是一个假把式。缓存
⽆论是Mybatis、Hibernate都是ORM的⼀种实现框架,都是对JDBC的⼀种封装!数据结构
[图片上传失败...(image-a396f-1606743201911)]mybatis
到⽬前为⽌,咱们已经在持久层中学了⼏种技术了...app
Hibernate框架
jdbcide
那咱们为啥还要学Mybatis呢???如今Mybatis在业内⼤⾏其道,那为啥他能那么⽕呢??
Hibernate是⼀个⽐较⽼旧的框架,⽤过他的同窗都知道,只要你会⽤,⽤起来⼗分舒服...啥sql代码都不⽤写...可是呢,它也是有的缺点::处理复杂业务时,灵活度差, 复杂的HQL难写难理解,例如多表查询的HQL语句,⽽JDBC很容易理解,就那么⼏个固定的步骤,就是开发起来太麻烦了,由于什么都要咱们⾃⼰⼲..
咱们能够认为,Mybatis就是jdbc和Hibernate之间的⼀个平衡点...毕竟如今业界都是⽤这个框架,咱们也不能不学呀!
今天分享字节跳动珍藏版的Mybatis文档,能够帮助你快速入门Mybatis!
关注公种浩:程序员追风,回复011 领取这份mybatisP文档(含思惟导图和面试题)
关于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文档。
学习是一生的事情,学完一段时间以后,想要检查学习效果如何,其实最好的方法就是可本身去总结一下。好比我在学习的时候会本身作笔记,而后本身再总结,本身的作的笔记也可方便后续的复习,且都是本身的理解。