说说使用mybatis的一些体会吧

说说使用mybatis的一些体会吧

说说使用mybatis的一些体会吧

说说使用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,谁用谁知道爽