初识JPA

JPA是什么?

jdk1.5之后java提供的持久化接口,整合了ORM技术,实现天下归一。

背景:

我们以前用的ORM框架有hibernate,mybatis,每次用的时候都需要使用他们的一些方法和配置配置,每个都需要使用自己的方法,而且不通用。使用了JPA,我们写的java应用调用持久层的时候,不会直接去调用持久层框架,而是去调用JPA的各种接口,在JPA的底层,因为JPA是一套规范,不负责具体的实现细节,他会有一些提供商,这些提供商可以是hibernate,toplink,openJPA等,这些都实现了JPA接口。我们存储数据都是按照JPA的规范去存储的。

这里着重说一下SpringDataJPA。

先说Spring是一个非常有行业前景的,有很大的格局,想把所有的都整合在一起,他有两大特性,SpringIOC和SpringAOP,SpringIOC容器的特性使得Spring有一个很牛的特性,可以很轻易的和任何一个框架整合。SpringData也是这样想的,平常在写代码的时候,可能要操作mysql,oracle还有Redis,SpringData就是把操作这些持久层的技术整合在了一起。SpringData封装的有JMS,Solr,Redis,MongoDB等。同样也对JPA做了一个Spring的封装。就出现了SpringDataJPA。

我们用的是SpringBoot+SpringDataJPA,他俩有很多共性。SpringBoot最火之处是他的微服务,微服务有一个特点,把很多大的项目拆分了很小型的服务,每一个小型的服务提供属于自己的一套功能,互联网里面业务更新迭代的很快,我们需要一个字“快”,一个新的技术出来的话,我们要实现它,就需要快速的用SpringBoot实现它。用SpringDataJPA也是很快的。用mybatis来写项目的话,要写mapper,整合mybatis,还有要建表,mybatis还有一个不方便的点,如果说前期用的mysql,之后想换成oracle的话,切换库的话,对mysql来说风险很大,mysql是半封装的框架,数据库之间是有差别的,,比如说模糊查询mysql中用的是like查询的,但是oracle中使用rownum写的,所以进行数据库迁移的话,要改很多sql语句的代码。SpringDataJPA不会有这样的问题,他的底层是hibernate,hibernate的有点他都有,可以用完全封装的方式写sql语句。现在用SpringBoot项目的人,用JPA的也很多。

未完待续......

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值