mybatis or jpa?
说明
简单来说,mybatis是偏向于数据库,jpa是偏向于代码。也就是说,mybatis需要手写SQL语句,能根据你的想法去编写和优化SQL语句,这方面我认为比JPA好用的就是多表关联查询了。spring data jpa则是封装的更多,也就是对于基础的SQL操作,你是可以不用写SQL语句的了,你只需要根据规范来使用即可。这样的话,JPA的灵活度是不高的。
相信有部分人会纠结使用mybatis以及jpa?到底哪个更好。其实,真相只有一个,没有最牛逼的技术,只有最符合项目需求的技术。说白了,根据项目需求来选择适用的框架。转换到技术层面来说,除了单体应用之外,与数据库表对应的实体类有可能会存在于多个微服务或者模块中,那么,将这些实体类统一封装到一个共有的模块中,其他项目引入这个模块,那么就可以达到复用的效果了。sure, you can copy code and paste code if you want, no one can stop you。
如何复用?也就是,对于部分项目,几乎都是单表查询的话,那你就可以使用jpa了。相反,对于多表擦查询比较频繁的项目,则使用mybatis。比如,后台管理系统使用mybatis就比较合适了。
实战
采用Springboot2.2 仅提供例子。例子只是辅助,你要看懂的是模式。
数据库以及表请自行准备。
公共包封装
封装对应表的实体类,mybatis和jpa均可以使用此类。
首先