Mybatis与JPA的优缺点

Mybatis与JPA的优缺点

JPA java持久层API

可理解为一种规范,Hibernate就是其具体一个实现。它的实现应用是Spring DataJpa,Spring提供了一套简化开发框架,按照约定好的方法命名规则,编写dao层接口,即可在不编写实现情况下执行数据库操作,还提供了除CRUD以外的功能,比如分页、排序、复杂查询等。SpringDataJpa可以理解为对JPA的再次封装,底层仍旧是Hibernate。

JPA优势

1、JPA可移植性好,支持Hibernate方言。

2、提供单表CRUD方法,减少sql语句的编写,开发效率高,。

3、面向对象开发思想,对象化程度更高。

Mybatis优点

1、自己编写SQL语句,更灵活、性能较高。

2、SQL语句与代码相互分离,易于阅读和维护。

3、提供XML标签#{}、${}、 <if test=""></if>等,支持拼写动态SQL语句。

Mybatis缺点

1、单表的CRUD操作需要编写SQL语句,库表字段的新增修改删除,都要重新维护。

2、XML中有大量SQL需维护;参数变更来回切换修改。

3、Mybatis功能有限。 

JPA与Mybatis的区别

其实JPA和mybatis大体上没什么区别,架构上很相似,mybatis就是mapper层,JPA就是repository层,其他都一样的

 

JPA就是把mapper层的接口换成repository的接口

那么接口具体长什么样呢?

mapper层

自己写sql语句

JPA的repository

没有具体sql语句,看起来没有实现一样,但其实是遵循规则的实现,你只要写 findByXxx(Xxx xx) 就能根据某个键自动实现数据库查询,当然其他的语句也是可以实现的。

如果你觉得不灵活,也可以自己写,例如

最后的nativeQuery一定加上,不然会报错。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hibernate、MyBatisJPAMyBatis-Plus 都是 Java 中比较流行的 ORM 框架。下面针对每个框架进行简单介绍和优缺点分析: 1. Hibernate Hibernate 是一个 ORM 框架,它可以将 Java 对象映射到关系型数据库中的表上。Hibernate 通过提供面向对象的 API,简化了数据库编程,让开发者可以更加专注于业务逻辑实现。Hibernate 还提供了缓存、事务管理等功能。 优点: - 提供了 ORM 映射机制,简化了数据库访问操作。 - 支持面向对象的编程方式。 - 提供了缓存机制,提高了应用程序的性能。 - 提供了事务管理机制,保证了数据的一致性和完整性。 缺点: - 学习和使用成本较高。 - 如果映射关系不合理,可能导致性能问题。 - 由于缓存机制和事务管理机制的存在,对于一些高并发的场景,需要进行一定的优化。 2. MyBatis MyBatis 是一个基于 SQL 映射的 ORM 框架,它允许开发者使用 SQL 语句来操作数据库。MyBatis 通过提供简单易用的 SQL 映射配置文件,将 Java 对象映射到关系型数据库中的表上。 优点: - 灵活性高,可以自由编写 SQL 语句,不受 ORM 映射机制的限制。 - 易于控制 SQL 执行过程,可以根据情况进行优化,提高性能。 - 学习和使用成本较低。 缺点: - 编写 SQL 语句需要一定的 SQL 知识。 - 不支持面向对象的编程方式。 - 不提供缓存和事务管理机制,需要开发者自行实现。 3. JPA JPA(Java Persistence API)是 Java 中的一种 ORM 规范,它定义了一套标准 API,用于操作数据库。JPA 的实现包括 Hibernate、EclipseLink 等。 优点: - 与 Hibernate 等 ORM 框架相比,JPA 的学习和使用成本较低。 - 支持面向对象的编程方式。 - 可以通过 JPA 规范来实现 ORM 映射,提高了代码的可移植性。 缺点: - JPA 规范的灵活性不如 Hibernate 等 ORM 框架。 - 由于规范的限制,JPA 在一些特殊场景下可能难以实现。 4. MyBatis-Plus MyBatis-Plus 是 MyBatis 的增强工具包,提供了一些方便的功能,如自动生成代码、分页查询、逻辑删除等。 优点: - 提供了一些方便的功能,提高了开发效率。 - 支持 MyBatis 的所有特性,具有良好的灵活性。 - 社区活跃,有较好的支持和文档。 缺点: - 功能较为简单,对于一些复杂的场景可能不够灵活。 - 相对于 MyBatisMyBatis-Plus 的学习成本稍高。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值