基于Springboot搭建java项目(十九)—— JPA、Hibernate和Mybatis

JPA、Hibernate和Mybatis

一、JPA、Hibernate和Mybatis的介绍

JPA:Java Persistence API.JPA通过JDK 5.0注解-关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA是JavaEE中的标准。JPA标准只提供了一套规范,需要有JPA的具体实现,Hibernate实现了JPA2.0标准,所以我们在用JPA的时候,其实用的是Hibernate提供了JPA2.0规范的实现;JPA还有其他实现,比如OpenJPA,各个JPA的实现在使用细节上有一些不同,使用时需要注意;

Hibernate是一个面向对象的持久化框架

  • 持久化:
    1,把内存中的Java对象保存到存储设备上面;
    2,最好的解决方案:把对象持久化到数据库里面;
    3,在Java里面,把对象持久化到数据库只能使用JDBC;
  • 框架:
    1,框架是一个半成品,是一个脚手架,它可以方便的,快速的辅助开发人员针对某一领域进行快速开发;
    2,使用框架,提高开发效率,减少重复代码,提高应用安全性,减少应用的bug;
    3,框架一定是按照开发人员告诉他的方式去运行,交流的工具就是框架的配置文件或者约定;
  • 面向对象:
    一个面向对象的持久化框架,在代码当中一定不可能出现关系的概念;

Mybatis它是一款半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但它的数据库无关性较低

总的来说JPA是JAVA官方提供的一套对象持久化的规范。Hibernate是基于JPA规范的一个ORM框架。MyBatis算不上ORM框架,不过是一个封装了JDBC的持久化框架。

二、JPA、Hibernate和Mybatis的区别

(一)、应用场合:

传统公司、迭代比较少和平稳的项目喜欢用JPA和Hibernate;而需要快速迭代的快速发展的项目更青睐于mybatis。

原因:

1、mybatis更加灵活,每一次的修改不会带来性能上的下降。

2、需求迭代速度慢、项目改动小,hibernate可以做到一劳永逸;hibernate容易因为添加关联关系,造成改造的成本比较大

(二)、各自特点:

1、mybatis是一个半自动化的持久层框架,相对于按自动的hibernate更加灵活可控;

2、mybatis的学习和集成的成本都比hibernate低。

3、使用hibernate需要对他有深入的了解,尤其是缓存方面,作为一个持久层框架,性能还是第一位的。hibernate具有三级缓存,一级缓存默认是开启的,二级缓存需要手动开始并配置优化,三级缓存可以整合业界流行的缓存技术:redis,ecache等等。

4、hibernate在关联查询中的懒加载。(在开发中,还是不建议去过多使用外键去关联操作)

5、jpa是一种规范,hibernate也是遵从这种规范

三、JPA、Hibernate和Mybatis的使用

JPA和Hibernate的使用

JPA和Hibernate的使用可以参考我之前的文章,有对Hibernate的使用(除了缓存之外的使用,后续会更新)做了较为详细的说明。JPA的使用可以参考:https://blog.csdn.net/qq_51308214/article/details/125165747

JPA和Hibernate对比:

​ 1,JPA只是Hibernate的一个子集(支持JPA只是Hibernate中的一个功能);

​ 2,Hibernate在对象状态,对象映射,对象关系,查询语句上和JPA80%以上都雷同;

​ 3,Hibernate本身更依赖XML配置,而JPA完全使用Annotation实现;

​ 4,Hibernate的API和JPA的API有一些区别(关键对象,对象方法);

Mybatis和MybatisPlus的使用

后续会更新相关的文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值