当前位置:首页 > 数据库 > 正文

hibernate和spring?hibernate和jpa

hibernate和spring?hibernate和jpa

这篇文章给大家聊聊关于hibernate和spring,以及hibernate和jpa对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。Java开发中,MyBati...

这篇文章给大家聊聊关于hibernate和spring,以及hibernate和jpa对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

Java开发中,MyBatis、Hibernate、Spring Data JPA应该如何选择

选择哪一种框架,需要结合项目实际来,结合业务场景和团队成员的能力,综合考虑并选择技术方案。

先和大家讲讲每一种框架是啥

Hibernate:POJO与数据库表建立映射关系;Java程序员可以使用操作对象的思维操作数据库。(POJO就是JavaBean,只有有属性、set、get方法)

Mybatis:做的是POJO与SQL之间的映射关系;程序员需要编写SQL;

SpringDataJPA:有人说它是对Hibernate更高级的封装,这种说法是有一些问题的;第二部分详细说明一下。

要解释清楚SpringDataJPA是什么,需要一步步说起

期初Java需要通过各个数据库厂商提供的API进行数据库的访问,后来JAVA提出了JDBC,程序直接使用JDBC这套规范就可以跟各个数据库进行对接;

接着诞生了ORM技术,简化了Java对象的持久化工作,出现了Hibernate、TopLink等ORM框架;

Sun公司在JDK1.5的时候,吸收了Hibernate、TopLink等ORM框架的优点,提出了Java持久化规范:JPA;

Hibernate在3.2的时候提供了JPA的实现,其余的JPA的供应商还有诸如OpenJPA、Toplink等;

Spring在做持久化这一块的工作,开发了Spring-data-xxx这一系列包,如:Spring-data-jpa,Spring-data-redis,Spring-data-mongodb等等,这些都是Spring提供的基于JPA和其他一些NOSQL的Repository。

SpringdataJPA是在JPA规范的基础下提供了Repository层的实现,但是使用哪一款ORM需要你自己去决定;相比我们更为熟悉的Hibernate和MyBatis,SpringDataJPA可以看做更高层次的抽象。

使用SpringdataJPA,默认底层是Hibernate,但是可以修改成其他的ORM框架。

几种框架的优劣

Hibernate开发难度较大,学习周期长;但是可以让开发者无需关心SQL,更专注业务流程;HQL不关心数据库的类型,所以迁移起来很方便;

Mybatis需要手动编写SQL语句(更直观),可更直接地对SQL进行优化,但是数据库移植性差;

SpringDataJPA简化了数据库访问,可以通过命名规范编写SQL,如果SQL较为复杂,还是需要通过注解的方式编写SQL;它更适用于现在微服务的架构(微服务的极致都是单表操作)。

从个人的角度:MyBatis>SpringDataJPA>Hibernate,或者MyBatis+SpringDataJPA。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

spring与hibernate配置事务后怎么提交事务后关闭数据库链接

事务管理和AOP一回事,开启的时候相当于一个BeforeAdvice。只有当所用方法内的所用代码都成功执行了才会提交(这是会涉及到回滚,有异常会回滚,当然也可以设置不回滚的异常)。关闭是在commit后或是回滚后。

关于hibernate和spring和hibernate和jpa的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

最新文章