说说使用mybatis的一些体会吧

Posted 梦回的承诺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了说说使用mybatis的一些体会吧相关的知识,希望对你有一定的参考价值。

从上面图我们可以知道具体的一个使用mybatis的流程框架,我自己的想法是,和JDBC相比,mybatis就是把相应的主业务和次业务进行了拆分。然后运用了代理模式,形成了对JDBC主要业务的一个代理(在build的sqlSessionFactory时候,代理对象已经生成了对mapper的代理,在使用中,我们只要使用代理对象就可以进行具体的操作,这个动作其实就是解耦)。在我感觉两者没什么多大的区别,只是设计上的差别,在开发效率上觉得还是差不多的,但是如果使用generator自动生成器mybatis还是会快点。

相比较而言,我还是比较喜欢springdata的JPA,相对于mybatis 来说,开发效率提升很多,JPA只要一个类,实现对应的接口就可以进行相应的操作,不像mybatis一样对应的文件超级多。

 

但是对比一下两个:

Mybatis 可以进行更细致的SQL优化,查询必要的字段,但是需要维护SQL和查询结果集的映射,而且数据库的移植性较差,针对不同的数据库编写不同的SQL,还可以进行类型转换,拦截器等等操作
Spring Data JPA 极大的简化了数据库访问,可以通过命名规范、注解的方式较快的编写SQL

 

所有对比而言还是应该看项目的实际情况来做决定,我在知乎上的一个人说的就很不错:

先去使用任意一种,然后当你发现现在框架有什么痛点的时候,你希望进一步优化的时候,再看看其他框架是否解决了你的痛点。 你就会明白另一个框架的优势了。

 

另外mybatis升级版mybatis plus也是和JPA一样封装了基础了CRUD,但是我看去还是很多对于的文件,mapper,xml这些都少不了;

如果业务较强的项目,即逻辑繁琐,数据操作较多的项目,建议使用mybatis或mybatis-plus,因为jpa对于复杂查询不友好,除非你写原生sql使用,那这样的话使用jpa也就没意义了,复杂业务的话我肯定选myabtis-plus,目前已经完善很好了,在mybatis的基础上简化了许多代码复杂度,具体用法可以百度,这个框架比较推荐,那不复杂的业务比如登陆权限控制这些可以用jpa的,项目中可以没有一句sql,谁用谁知道爽
 

 

以上是关于说说使用mybatis的一些体会吧的主要内容,如果未能解决你的问题,请参考以下文章

谈谈入职新公司1月的体会

面试官:MyBatis 插件有什么用途?说说底层原理?我竟然不会。。

Mybatis分页插件-PageHelper的使用

python初体验--我对python的体会

产品经理与项目经理的差别体会

实验2的一些心得体会