2020-09-01

Spring Boot JAP和的区别MyBatis

JPA多表查询
多表查询在Spring Data JPA 中有两种实现方式,第一种是创建一个结果集的接口来接受多表联查查询后的结果,第二种是利用JPA的关联映射来实现.
关联映射
在软件开发中,类与类之间最普遍的关系就是关联关系,而且关联是有方向的.以角色(Role)和用户(User)为例,一个角色下有多个用户,而一个用户只能属于一个角色.
从User到Role的关联就是多对一关联,这就意味着每个User对象只会引用一个Role对象,
因此在User类中应该定义一个Role类型的属性,类引用所关联的Role对象.
从Role到User是一对多关联,或者仅有从Role到User的关联,就称为单向关联.如果同时包含两种关联,就称为双向关联.
数据之间一对多或者多对一的关系,通常涉及两张表,"多"方表通过外键引用"一"方表的主键来实现一对多的关联.
概述
Spring Data JPA可以理解为 JPA 规范的再次封装抽象,底层还是使用了 Hibernate 的 JPA 技术实现。

MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。Mybatis:着力于POJO与SQL之间的映射关系
与spring的集成
Spring 以及 Spring Boot 官方都没有针对 MyBatis 有具体的支持,但对 Hibernate 的集成一直是有的。但这并不表明 MyBatis 无法与 Spring Boot 集成,毕竟现在互联网企业,还是很流行使用MyBatis 和 Spring 。MyBatis 官方社区自身也是有 对 Spring / Spring boot 集成做支持的,所以在技术上,两者都不存在问题。
数据库的扩张
Hibernate与数据库具体的关联都在XML中,所以HQL对具体是用什么数据库并不是很关心。

Mybatis由于所有SQL都是依赖数据库书写的,所以扩展性,迁移性比较差。
数据库性能
由于 Hibernate 比 MyBatis 抽象封装的程度更高,理论上单个语句之心的性能会低一点(所有的框架都是一样,排除算法上的差异,越是底层,执行效率越高)。 但 Hibernate 会设置缓存,对于重复查询有一定的优化。所以,从整体的角度来看性能的话,其实两者不能完全说谁胜谁劣。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值