SSH 或者 SSM 是不是过时了?
不论是传统的 SSH 或者 SSM,还是现在的主流 Spring Boot 或者 Spring Cloud、Dubbo 等都离不开 ORM 框架。现代开发者很少去使用 JDBC 直接操作数据库,而是通过 ORM 框架。
有人会说,SSH 或者 SSM 不是已经是老黄历了吗?老黄历确实要更新,我们不妨把 SSH 更新为:
但还是太老对不对?那我们不妨把 Spring Boot 的包裹的外壳脱掉,看看它的核心是什么?
我们最终发现不管是使用JPA(底层是 Hibernate,后面章节会专门来讨论 JPA 和 Hibenate的关系),还是 mybatis-spring-boot-starter,最终访问数据库的要么是 MyBatis,要么是 Hibernate,或者 Spring JDBC(极少)。
为什么国内公司首选 MyBatis 而不是 Hibernate?
工作中使用过 JPA(Hibernate),但我更喜欢 MyBatis,主要原因有以下几点:
另外还有一些其它好处:
最熟悉的陌生人——MyBatis
很多人用了多年的 MyBatis,有没有自己的独门绝技?还是碰到问题还是百度第一?我仅仅使用一个金字塔模型来说说使用框架者的水平,不足之处敬请指正。
大部分人对工作中用的框架仅仅是使用,仿照别人或者网上的例子按部就班的工作,碰到不懂的问题就去问别人或者网上搜索,得到不同的答案不能分辨哪个是正确的,只能一个个的去尝试,这就是我们常说的 CRUDer,一般工作 0~3 年常见。
一小部分人突破了这一层,有一定的技术积累。对常见的问题,能很快根据异常定位到错误原因,能不依赖别人或者网络独立完成工作,我们通常称这部分人为合格的软件工程师,一般工作 3~5 年常见。
还有一部分人走的更高,能深入到使用的工具内部原理,积累了一些独门绝技,碰到疑难杂症也可以游刃有余,得心应手。这部分人一般我们常称之为“大神”,一般多见于工作经验 5 年以上的程序员。
你处于哪个阶段呢?
本专栏分六个部分来展开:
第一部分:从一个常见面试问题,引申出 MyBatis 是如何找到 SQL,并执行的。并把我们常见的 ORM 框架 MyBatis、Hibernate、JPA、Spring jdbcTemplate 各做一个实例,然后进行了对比它们的优缺点。
第二部分:以面试或者工作中碰到的问题为引子,使用实例实现了 MyBatis 最常使用的功能,让你面试工作两不误!
第三部分:引入了 MyBatis 的一些高级功能,掌握这些你就可以在工作中游刃有余或者面试时给面试官展示一下你的技术深度!
第四部分:针对一些喜欢追根究底的面试官,你也不用紧张,学上几招,来量量他的深度!
第五部分:既然面试要造航母,我们也要搞搞航母的架构原理。
第六部分:学了这么久,要不要下山闯江湖?试试十八罗汉阵吧!
适用于 0~5 年以工作经验的初中高级开发:
4.想要系统的学习 MyBatis,一页一页的翻着 MyBatis 的官方文档,和英文做艰苦卓绝的对抗,最终从入门到放弃;Say NO!
5.想要探究 MyBatis 源码本身,但无从下手,Debug 中慢慢迷失方向,忘记初心;Say NO!
自由工作者,曾任多家互联网公司架构师,一线码农,十余年开发和架构经验。熟悉后端、大数据、数据中台、架构等。
信奉“一天不进步,就是退步”。希望我的专栏能给大家带来帮助,也希望能和大家互相陪伴,在技术问题上谈天说地!
SSH 或者 SSM 是不是过时了?
不论是传统的 SSH 或者 SSM,还是现在的主流 Spring Boot 或者 Spring Cloud、Dubbo 等都离不开 ORM 框架。现代开发者很少去使用 JDBC 直接操作数据库,而是通过 ORM 框架。
有人会说,SSH 或者 SSM 不是已经是老黄历了吗?老黄历确实要更新,我们不妨把 SSH 更新为:
但还是太老对不对?那我们不妨把 Spring Boot 的包裹的外壳脱掉,看看它的核心是什么?
我们最终发现不管是使用JPA(底层是 Hibernate,后面章节会专门来讨论 JPA 和 Hibenate的关系),还是 mybatis-spring-boot-starter,最终访问数据库的要么是 MyBatis,要么是 Hibernate,或者 Spring JDBC(极少)。
为什么国内公司首选 MyBatis 而不是 Hibernate?
工作中使用过 JPA(Hibernate),但我更喜欢 MyBatis,主要原因有以下几点:
另外还有一些其它好处:
最熟悉的陌生人——MyBatis
很多人用了多年的 MyBatis,有没有自己的独门绝技?还是碰到问题还是百度第一?我仅仅使用一个金字塔模型来说说使用框架者的水平,不足之处敬请指正。
大部分人对工作中用的框架仅仅是使用,仿照别人或者网上的例子按部就班的工作,碰到不懂的问题就去问别人或者网上搜索,得到不同的答案不能分辨哪个是正确的,只能一个个的去尝试,这就是我们常说的 CRUDer,一般工作 0~3 年常见。
一小部分人突破了这一层,有一定的技术积累。对常见的问题,能很快根据异常定位到错误原因,能不依赖别人或者网络独立完成工作,我们通常称这部分人为合格的软件工程师,一般工作 3~5 年常见。
还有一部分人走的更高,能深入到使用的工具内部原理,积累了一些独门绝技,碰到疑难杂症也可以游刃有余,得心应手。这部分人一般我们常称之为“大神”,一般多见于工作经验 5 年以上的程序员。
你处于哪个阶段呢?
本专栏分六个部分来展开:
第一部分:从一个常见面试问题,引申出 MyBatis 是如何找到 SQL,并执行的。并把我们常见的 ORM 框架 MyBatis、Hibernate、JPA、Spring jdbcTemplate 各做一个实例,然后进行了对比它们的优缺点。
第二部分:以面试或者工作中碰到的问题为引子,使用实例实现了 MyBatis 最常使用的功能,让你面试工作两不误!
第三部分:引入了 MyBatis 的一些高级功能,掌握这些你就可以在工作中游刃有余或者面试时给面试官展示一下你的技术深度!
第四部分:针对一些喜欢追根究底的面试官,你也不用紧张,学上几招,来量量他的深度!
第五部分:既然面试要造航母,我们也要搞搞航母的架构原理。
第六部分:学了这么久,要不要下山闯江湖?试试十八罗汉阵吧!
适用于 0~5 年以工作经验的初中高级开发:
4.想要系统的学习 MyBatis,一页一页的翻着 MyBatis 的官方文档,和英文做艰苦卓绝的对抗,最终从入门到放弃;Say NO!
5.想要探究 MyBatis 源码本身,但无从下手,Debug 中慢慢迷失方向,忘记初心;Say NO!
自由工作者,曾任多家互联网公司架构师,一线码农,十余年开发和架构经验。熟悉后端、大数据、数据中台、架构等。
信奉“一天不进步,就是退步”。希望我的专栏能给大家带来帮助,也希望能和大家互相陪伴,在技术问题上谈天说地!
绑定成功