项目中对于数据库的操作是必不可少的,现在流行的有很多框架比如mybatis、jpa,对于我们来说到底该选哪个呢?
两者对比
对比 | Spring Data JPA | Mybatis |
---|---|---|
学习成本 | 较高 | 较低 |
单表操作 | 非常方便 | 较JPA麻烦 |
多表操作 | 不太友好 | 比较友好 |
自定义SQL | 可以使用注解写原生SQL | 支持注解以及xml写SQL语句 |
个人看法
从对比上来说,两者各有优缺点
- 如果原来项目已经有自己的技术选型,则不要纠结,原来是什么就是什么,没有切换的必要
- 如果项目本身来说业务逻辑比较简单,那么我推荐直接使用JPA;倘若项目较大,业务比较复杂,可能涉及到报表等业务就选择mybatis
- 针对于新项目来说,除了考虑第二点,团队技术也需要考虑,如果团队对某个技术更了解,那就使用擅长的一个技术
对于我来说,我更倾向于使用jpa,为什么呢?首先jpa操作数据库可以说非常简单,没有mybatis的xml配置,开发效率真的不是一般的快。
有人可能会说,mybatis性能比JPA好,这个我不认同,有些人写的SQL真不一定比JPA自动生成的SQL效率高,而且大部分业务效率根本感觉不出来,退一步讲,如果你真的这么讲究性能,为什么不直接使用jdbc呢?
也有人可能会说mybatis写复杂的sql非常方便,JPA针对复杂的操作同样可以利用Specification实现,所以不要纠结了,有时候你想半天,别人的产品都已经出来了,你想这些的意义是否还存在?
如果实在遇到使用jpa的项目后期业务变复杂了,难道我们不能使用jpa+jdbc结合吗?
说到底,黑猫白猫,能抓老鼠的就是好猫