网站建设甲方给乙方的需求方案,各大网站推广软件,有效作业设计方案,个人网站备案描述提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 MyBatis-plu 和 JPA 前言一、说下相同点二、差异点一、从实现来说#xff1a;CURD实现方式不一样二、分页上三、雪花id四、伪删除五、子类排除父类的字段 总结 前言
提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 MyBatis-plu 和 JPA 前言一、说下相同点二、差异点一、从实现来说CURD实现方式不一样二、分页上三、雪花id四、伪删除五、子类排除父类的字段 总结 前言
提示这里可以添加本文要记录的大概内容
说来尴尬工作这么多年还没用过JPA。
自己用了下querydsl-jpa和常用的mybatis-plus进行了下对比。 整体来说都有自己的优点mybatis-plus更加轻量JPAQuery可以实现联表查询。 一、说下相同点
1:都包装了简单的CRUD可以直接用 2:都支持自定义sql如Select 3:都支持二级缓存
二、差异点
一、从实现来说CURD实现方式不一样
mybatis-plus Mapper(Dao)类extends BaseMapper 实现类里extends ServiceImpl 接口类extends IService
jpa repository类(等同于Mapper/DAO类)extends JpaRepository 但是jpa在定义好数据库类如User类后需要compile一下会生产QUser类
二、分页上
mybatis-plus : 有自己的分页插件也能很好的支持第三方插件如pageHelper jpa:需要自己处理count查询
三、雪花id
mybatis-plus: 自带 jpa:需要自己实现
四、伪删除
mybatis-plus: 有TableLogic jpa:需要自己实现
五、子类排除父类的字段
mybatis-plus: 子类里重新定义父类里的字段用transient jpa:暂不能解决 总结
归纳下大佬们的理解 jpa 1:默认使用hibernate作为ORM 2:更加偏向于面向对象 3:支持多表关联用JPAQuery不是像mybatis那样写在xml
mybatis 1:避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 2:更偏向于面向数据面向关系致命优点简单、可读性强
网上一直说的性能 两个ORM框架的效率不会查特别多毕竟一次插入万级数据且要求ms级别这种毕竟是极少数。平时开发中几百条数据的情况下两者都差不多的。
到底用哪个 第一跟着公司走毕竟大头兵没啥发言权 第二我个人更推荐mybatis-plus尽量不写xml。联表逻辑放在代码里实现jvm运行代码很快的避免for内部查库 第三JPA的学习成本比MyBatis-plus大 最后声明下本文章没有商用且参考了网上许多大佬的文章
重点推荐详细对比 JPA、MyBatis-Plus 的差异 https://zhuanlan.zhihu.com/p/425864811
springjpa和mybatis哪个查询效率高? https://www.zhihu.com/question/356307466/answer/919908635
JPA,Hibernate,mybatis,mybatis plus,Querydsl https://blog.csdn.net/qq_44772660/article/details/111840512
MyBatis还是JPA? 终于有答案了 https://zhuanlan.zhihu.com/p/263043522 … 就不一一列举了