主流 Java ORM 框架有哪些?

ORM 是 Object Relational Mapping 的缩写,译为 “对象关系映射” 框架。
所谓的 ORM 框架就是一种为了解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述 Java 对象与数据库表之间的映射关系,自动将 Java 应用程序中的对象持久化到关系型数据库的表中。
ORM 框架是一种数据持久化技术,即在对象模型和关系型数据库之间建立起对应关系,并且提供一种机制,可通过 JavaBean 对象操作数据库表中的数据,如图 1 所示。


图 1:ORM 映射关系
在实际开发中,程序员使用面向对象的技术操作数据,而存储数据时,使用的却是关系型数据库,这样就造成了很多不便。ORM 可以在对象模型和关系型数据库的表之间建立一座桥梁,程序员使用 API 直接操作 JavaBean 对象就可以实现数据的存储、查询、更改和删除等操作

MyBatis 框架通过简单的 XML 或注解进行配置和原始映射,将实体类和 SQL 语句之间建立起映射关系,是一种半自动化的 ORM 实现

主流的 Java ORM 框架

当前 Java ORM 框架产品有很多,常见的框架有 Hibernate 和 MyBatis,其主要区别如下。

  1. Hibernate
    Hibernate 框架是一个全表映射的框架。通常开发者只要定义好持久化对象到数据库表的映射关系,就可以通过 Hibernate 框架提供的方法完成持久层操作。
    开发者并不需要熟练地掌握 SQL 语句的编写,Hibernate 框架会根据编制的存储逻辑,自动生成对应的 SQL,并调用 JDBC 接口来执行,所以其开发效率会高于 MyBatis 框架。
    然而 Hibernate 框架自身也存在一些缺点,例如:
    • 多表关联时,对 SQL 查询的支持较差;
    • 更新数据时,需要发送所有字段;
    • 不支持存储过程;
    • 不能通过优化 SQL 来优化性能。
    这些问题导致其只适合在场景不太复杂且对性能要求不高的项目中使用。
    Hibernate 官网:http://hibernate.org/
  2. MyBatis
    MyBatis 框架是一个半自动映射的框架。这里所谓的 “半自动” 是相对于 Hibernate 框架全表映射而言的,MyBatis 框架需要手动匹配提供 POJO、SQL 和映射关系,而 Hibernate 框架只需提供 POJO 和映射关系即可。
    与 Hibernate 框架相比,虽然使用 MyBatis 框架手动编写 SQL 要比使用 Hibernate 框架的工作量大,但 MyBatis 框架可以配置动态 SQL 并优化 SQL、通过配置决定 SQL 的映射规则,以及支持存储过程等。对于一些复杂的和需要优化性能的项目来说,显然使用 MyBatis 框架更加合适。
    MyBatis 框架可应用于需求多变的互联网项目,如电商项目;Hibernate 框架可应用于需求明确、业务固定的项目,如 OA 项目、ERP 项目等。
    MyBatis 3 中文文档:https://mybatis.org/mybatis-3/zh/
    分类: Mybatis

主流 Java ORM 框架有哪些?相关推荐

  1. java mysql orm框架_主流 Java ORM 框架有哪些?

    主流 Java ORM 框架有哪些? ORM 是 Object Relational Mapping 的缩写,译为 "对象关系映射" 框架. 所谓的 ORM 框架就是一种为了解决面 ...

  2. java orm框架什么意思_什么是Java orm框架

    什么是Java orm框架 时间:2017-08-23     来源:华清远见JAVA学院 什么是Java ORM框架呢?Object/Relation Mapping,简称ORM,翻译过来就是对象- ...

  3. java orm框架有哪些_Java Stream ORM现在带有JOIN

    java orm框架有哪些 Speedment是一个Java Stream ORM工具包和运行时,它使您可以将数据库表作为标准Java Streams查看. 由于不必混合使用Java和SQL,因此该应 ...

  4. Persistence4j 1.1发布,Java ORM框架

    近日,Persistence4j 1.1版本发布了,它是一个小型.轻量级的Java 对象持久层类库,实现关系数据库和Java 对象之间的持久化.此版本主要是对bug的修复,点击查看更新详情:http: ...

  5. java开发之Java ORM 框架推荐

    1 前言 ObjectiveSQL 是一个Java ORM 框架,它不仅是Active Record 模式在Java 中的应用,同时还针对复杂SQL 编程提供近乎完美的解决方案,使得Java 代码与S ...

  6. .NET(C#)有哪些主流的ORM框架,FreeSql,SqlSugar,Dapper,EF还是...

    前言 在以前的一篇文章中,为大家分享了<什么是ORM?为什么用ORM?浅析ORM的使用及利弊>.那么,在目前的.NET(C#)的世界里,有哪些主流的ORM,FreeSql,SqlSugar ...

  7. java orm框架什么意思_ORM框架是什么

    ORM框架是什么 对象关系映射,目前数据库是关系型数据库  ORM 主要是把数据库中的关系数据映射称为程序中的对象 目前集中常见的ORM框架 1  Nhibernate 原因:用的比较多,资料也比较好 ...

  8. dapperpoco mysql_.NET(C#)有哪些主流的ORM框架,SqlSugar,Dapper,EF还是...

    前言 在以前的一篇文章中,为大家分享了<什么是ORM?为什么用ORM?浅析ORM的使用及利弊>.那么,在目前的.NET(C#)的世界里,有哪些主流的ORM,SqlSugar,Dapper, ...

  9. .NET(C#)有哪些主流的ORM框架

    前言 在以前的一篇文章中,为大家分享了<什么是ORM?为什么用ORM?浅析ORM的使用及利弊>.那么,在目前的.NET(C#)的世界里,有哪些主流的ORM,SqlSugar,Dapper, ...

最新文章

  1. Vue $createElement
  2. Java分布式 RPC 框架性能大比拼,Dubbo最差?
  3. Android Launcher3(一) -- 启动过程
  4. java puzzler_Java Puzzler学习笔记
  5. smarty5变量修改器
  6. 安卓学习随笔 -- 自定义标题栏
  7. java参数类型不同_java – 两种不同的参数类型(将Object强制转换为Type)
  8. iOS多任务:suspend VS terminate
  9. mysql show_db 权限_菜鸟课堂:MySQL权限的详细解答
  10. Vue中Three.js的天空盒
  11. 高观点下的高等数学(数学分析、线性代数)
  12. 光纤中的非线性光学效应
  13. hdu 5053 水
  14. layui 模板引擎用法小结
  15. matlab专业代做hslogic,matlab代做hslogic
  16. 华为CANN训练营笔记——应用开发全流程 [5](with 代码版)
  17. 错误提示 - Procmon.exe - 无法找到入口(InitializeSRWLock)
  18. ubuntu android编译和开发环境配置记录
  19. C#+winform登陆界面案例
  20. dgl源码阅读笔记(3)——DeepWalk

热门文章

  1. js实现datadog hostMap
  2. windows server 2008 杀毒软件和防火墙 免费 国外
  3. linux下用mpg123听音乐
  4. 零基础怎么入门UI设计 需要学哪些内容
  5. 初级商业数字营销师直通车考试
  6. 完整的连接器设计手册_深度解析特斯拉的电池快充连接器技术|附视频
  7. java generic 介绍
  8. element table 合并单元格错位或单元格后移
  9. 微信小程序-获取本小程序的appID
  10. ThinkPHP框架下载