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


    前言

    很多人说 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的⼀种封装!
    到⽬前为⽌,我们已经在持久层中学了⼏种技术了...
    • 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文档。
    关注公众号:程序员追风,回复011 领取这份mybatisP文档(含思维导图和面试题)

    总结

    学习是一辈子的事情,学完一段时间之后,想要检查学习效果如何,其实最好的方法就是可自己去总结一下。比如我在学习的时候会自己做笔记,然后自己再总结,自己的做的笔记也可方便后续的复习,且都是自己的理解。
  • 相关阅读:
    jQuery Validate验证框架详解
    struts异常:No result defined for action
    spring问题:java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutPrimitive
    Mybatis异常:java.lang.ClassNotFoundException: org.mybatis.spring.SqlSessionFactoryBean
    HttpServletRequest cannot be resolved to a type。
    struts文件异常Included file cannot be found
    JS中获取session中传过来的值对象
    [JS]Math.random()
    用photoshop将图片四角变成圆角
    SSH的jar包下载地址
  • 原文地址:https://www.cnblogs.com/zhuifeng523/p/14064005.html
Copyright © 2020-2023  润新知