一场疫情,

开启了2020应届生(不仅仅是应届生,还有工作没几年的小伙伴,都可以看一下)求职的地狱模式:

实习,辞了

考研,凉了

论文,废了

春招,歇了

......

别说拿高薪,有份工作都难!

 

当「想象」遇上「现实」,

现在的你,

还挺得住吗?

(*文末有求职福利*)

春招

想象中

「人山人海」

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

现实中

「等下一个春天~」

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

面试

想象中

「侃侃而谈」

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

现实中

「竟无语凝噎···」

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

实习

想象中

「风风火火」

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

现实中

「为什么受伤的总是我···」

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

简历

「一投即中」

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

现实中

「石沉大海···」

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

offer

想象中

「疯狂袭来」

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

现实中

「仿佛等一个心上人···」

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

薪资

想象中

「拿到手软」

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

现实中

「走个流程而已···」

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

6

学习

想象中

「大家都一样」

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

现实中

「总有人偷偷学习···」

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

难道实习生真的就没有出路了吗?开玩笑。怎么可能,最近公司刚来的那个实习生,比很多工作几年的人都麻利,有一次,无意中发现他在整理一张思维导图,反正快下班了,就顺便和她聊了一下,他问我,老大。mybatis你掌握的怎么样啊

我想了一下,说了一句:解决bug没有什么问题,底层源码也能跟你聊一下,

然后他说了一句至今让我难以忘却的话,那你能从头到尾给我大致的罗列一下mybatis的知识点吗?

我去,开玩笑,怎么可能,然后在我惊讶的表情中,我看到了他打开了下面的这些东西。。。

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

回到家后,吃完饭,我就在回想自己这几年的工作经历,突然发现,好像我已经没有了什么冲劲,会的东西很多,但要说详细,真的不如新来公司的实习生,然后我以mybatis为例,整理了下面的文章

认识Mybatis

为什么我们要是用mybatis呢?

回想起我第一次实习看到公司代码时的感受:「卧槽,代码怎么这么多啊。这为什么有这么多的包啊,一直点开都有」

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

 

如果纯用JDBC,只要项目是有点规模的,那我们的项目里代码量一定会很多。最重要的是,很多的代码都是重复的。如果我们的项目里边积累了这么多的重复代码,最致命的问题就是「不好维护

于是就有了这么多的ORM框架,至于用哪一个ORM框架,我觉得没有对错之分,公司用哪个你就用哪个就好了。

毕竟技术都是服务于业务,公司在选型的时候,选了某ORM框架,肯定也有当时的一个考虑。等到真的是由于使用了某ORM框架导致无法承接掉业务的时,那自然而然就会有优化。

在知乎上有很多「Mybatis与Hibernate/SpringData JPA」的对比,有兴趣的小伙伴可以去学习学习,看着大佬们的「回答/讨论」还是能学到不少的东西的。

 

Mybatis作为一个ORM框架,在市面上非常受欢迎,只要有JDBC基础,学会用很简单。

不BB了,开始吧

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

 

入门

使用Mybatis的步骤大致如下:

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

 

首先我们需要配Mybatis的一份配置文件,这份配置文件主要配置数据库相关的信息:

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

 

随后,我们编写一个工具类来获取sqlSession,这个SQLSession相当于JDBC的Connection对象

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

 

然后编写我们的映射文件,这个映射文件实际上就是对象与数据库的映射关系:

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

 

我们在映射文件上使用<insert>标签来实现插入:

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

然后调用sqlSession来实现插入即可:

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

效果如下:

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

 

看到这里,会不会觉得好像有点复杂?其实这几个步骤都很自然而然的:

  • 要操作数据库,总会有数据库相关的配置吧。(这块实际上就写一次,第一次写完了就不用再写了)
  • 要操作数据库,得告诉程序怎么操作吧,所以有映射文件(可以是XML的映射文件,也可以是注解的方式,反正我们得开个口子去告诉程序怎么执行)
  • 然后我们操作SQLSession去执行命令(这块后面我们可以把SQLSession直接屏蔽掉)

所以,用Mybatis实际上就是写映射文件/注解去告诉程序怎么操作,而映射文件/注解其实就是写SQL,对我们来说并不是难事。

因此,Mybatis入门是真的简单。

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

 

Mybatis细节

动态SQL

动态SQL实际上就是使用Mybatis给我们提供的if/foreach之类的标签去判断传递进来的参数有没有值,如果有值我们就拼接参数,如果没有,我们就不拼接。

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

 

缓存

了解Mybatis的一级缓存和二级缓存是什么意思,Mybatis的缓存实现可以用ehcache来管理。

如果某些数据查询量大而且不怎么修改的,我们可以考虑使用ehcache来对这部分的数据进行缓存,减少数据库的压力。

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

 

Mapper代理

在最开头的例子我们看到我们使用Mybatis在开发中也不见得简单很多,因为在SQLSession这一块还是需要我们手动去编写。

我们可以使用Mapper代理的方式屏蔽掉SQLSession这块的代码,开发只要写一个接口+一个Mapper.xml(或者注解)就足够了。

那是怎么屏蔽的呢?依靠的是动态代理。为什么可以依靠动态代理来实现呢?因为我们Mapper代理是需要依赖「规则」的,有了「规则」我们就可以通过「反射」去简化我们的代码了。

****

通过Mapper代理我们已经可以实现「一个接口+一个Mapper映射文件(注解)」就可以开发我们的程序了。

而又因为在工作中,CRUD是避免不了的,几乎每增加一张表,都需要有「最基本」的CRUD。

于是程序员们又偷懒了,连「最基本」的CRUD都不想自己写了,于是就有了****。

我们看一下****的配置就差不多能看懂是干啥的了:

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

 

通过表的结构,生成我们自己的JavaBean以及对应的Mapper接口和Mapper映射文件。

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

Mybatis-plus

Mybatis-plus又是程序员偷懒造出的轮子(狗头

这款插件说实话我没用过,看了一下官网,大致就是:简单的CRUD,我连XML都不需要了,API直接帮我们内置了对应的CRUD方法。

有兴趣的同学去学学,都是能提高开发效率的工具。

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

这里只是整理了一部分关于mybatis的知识点,试问看到这里的各位,无论你是应届生还是已经工作几年的老铁,你的学习和知识点学到这样的一个地步了吗?这还只是一个mybatis

来看一下他整理的其他的

基础:

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

架构

架构的东西有很多是他通过看书进行规划的,好多都没学过,我又帮他补充了一部分

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

大数据

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

 

我不说别的,单就整理的这份文档的态度,我想他在日常工作中的状态大家应该也明白吧,当然了,也跟这个小伙的学校有关系,他能接触到很多其他的学校接触不到的东西,但是,这是你不努力的理由吗?你接触到的学的怎么样呢?

其实,这也是很多程序员面临的一个问题,学的东西很多,但是,都是跟着业务需求学习,从来没有进行过详细的整理,这也造成一个现象,就是感觉自己会的很多,但是当要准备面试的时候,却发现好像什么也不会,你缺乏的可能就是这样的一张知识脑图,把自己的知识点梳理起来

好了,不知道,为什么,越写越激动,可能也是为自己这些年的虚度而悲愤吧

想要这些完整的知识图谱的,关注公众号:Java架构师联盟,回复架构图即可,只要你来,只要我有

以mybatis为例,如果技术你能学到这样,程序猿,你还怕什么面试官

相关文章:

  • 2021-12-23
  • 2021-10-14
  • 2021-11-21
  • 2021-12-07
  • 2021-05-15
  • 2021-12-31
  • 2022-12-23
猜你喜欢
  • 2021-06-16
  • 2021-06-18
  • 2021-12-06
  • 2021-11-30
  • 2021-12-09
相关资源
相似解决方案