徐州北大青鸟
当前位置: 主页 > 新闻中心 > 行业动态 >

为啥老外喜欢JPA,国人钟情MyBatis,聊聊它们的优缺点?

时间:2021-04-02 14:41来源:未知 作者:代码如诗 点击:
# 什么是JPA JPA是一种规范,它简化了现有持久化的开发,并且充分吸收了Hibernate、TopLInk、JDO等框架。SpringData JPA是全自动框架,不需要自己写sql,当然也可以自己写sql实现。而自动生成
# 什么是JPA
 
JPA是一种规范,它简化了现有持久化的开发,并且充分吸收了Hibernate、TopLInk、JDO等框架。SpringData JPA是全自动框架,不需要自己写sql,当然也可以自己写sql实现。而自动生成sql这点是优点,也是缺点,因为生成的sql可读性差,而且一些业务比如执行逻辑删除等还是需要自己来实现sql。
 
# 什么是Mybatis
 
Mybatis是一种半自动的ORM框架,它简单易上手,没有第三方依赖,支持对象与数据库的ORM关系映射,将sql代码与业务代码分离,使得开发人员可以更自如的写出高效的sql,不过反过来说不像SpringData JPA这种全自动的ORM框架,它需要自己实现sql语句,对开发人员的sql编写能力要求高,虽然将sql代码写在xml文件里方便了修改和编写,可这同时也降低了可读性。
 
JPA的优缺点
 
优点
 
可持久化Java对象。JPA能够直接持久化复杂的Java对象,并能够使用JPQL语言进行复杂的查询。JPQL是JPA专用的查询语言,是类似于SQL的面向对象的查询语言。
 
使用简单。JPA使用注释(Annotation)定义Java对象与关系数据库之间的映射,而传统的ORM多使用xml配置文件。JPA使用起来比ORM要方便。使用JPA不用关注底层使用什么数据库。
 
规范标准化。JPA是JCP组织发布的,是Java官方规定的统一的API。目前已经有多种框架实现JPA标准。使用了JPA的系统可以自由选择遵循JPA标准的框架,并能够自由更换。
 
事务性、大数据量。JPA底层使用关系数据库进行存储,因此具备关系数据库的特点,例如事务性、数据完整性、并发访问、大数据量等。
 
与其他持久化技术相比,JPA有很大的技术优势。表列出了JPA与其他持久化技术的比较。
 
缺点
 
因为sql语句是自动生成的可读性是比较差的,对于一些高级业务或者复杂的查询都需要自己来实现sql。
 
Mybatis的优缺点
 
优点
 
上手容易、提供xml标签、支持动态SQL编程,Mapper映射,支持对象与数据库的ORM字段关系映射。
 
缺点
 
SQL语句的编写工作量较大,尤其是字段多、关联表多时,更是如此,对开发人员编写SQL语句的功底有一定要求
 
SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库
 
当希望对象的持久化对应用程序完全透明是,不适合使用Mybatis
 
当数据库有移植需求或需要支持多种数据库时,不适合使用Mybatis
 
缓存使用不当,容易产生脏数据
(责任编辑:代码如诗)
------分隔线----------------------------
栏目列表
推荐内容