相关文章推荐
曾深爱过的毛衣  ·  Oracle Connection ...·  1 年前    · 
曾深爱过的毛衣  ·  Spring Data JDBC ...·  1 年前    · 
老实的梨子  ·  ORM--------Hibernate、M ...·  1 年前    · 

常见ORM 技术选型

hibernate、Spring Data JPA和 Mybatis 对比优缺点以及应用场景

一、Mybatis 优点:上手容易、提供xml标签、支持动态SQL编程,Mapper映射,支持对象与数据库的ORM字段关系映射

Mybatis 缺点:

  1. SQL语句的编写工作量较大,尤其是字段多、关联表多时,更是如此,对开发人员编写SQL语句的功底有一定要求。
  2. SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库
  3. 当希望对象的持久化对应用程序完全透明是,不适合使用Mybatis
  4. 当数据库有移植需求或需要支持多种数据库时,不适合使用Mybatis

Mybatis 应用场景:适用于表关联较多的项目,持续维护开发迭代较快的项目,需求变化较多的项目,如互联网项目

二、Spring Data JPA 应用场景:传统项目或者关系模型较为清晰稳定的项目,建议JPA(比如DDD设计中的领域层)

Spring Data JPA:一般会和Hibernate一起使用

三、Hibernate 入门门槛较高,不需要写SQL,SQL会自动生成

Hibernate 缺点:sql的优化比较困难 Hibernate 应用场景:适用与需求变化不多的中小型项目中,比如后台管理,erp,orm,oa 四、比较 hibernate是面向对象的,而MyBatis是面向关系的

数据分析型的OLAP应用适合用MyBatis,事务处理型OLTP应用适合用JPA。 越是复杂的业务,越需要领域建模,建模用JPA实现最方便灵活。但是JPA想用好,门槛比较高,不懂DDD的话,就会沦为增删改查了。 复杂的查询应该是通过CQRS模式,通过异步队列建立合适查询的视图,通过视图避免复杂的Join,而不是直接查询领域模型。 从目前的趋势来看OLAP交给NoSQL数据库可能更合适

Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。 Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。 Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。 Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳

常见ORM 技术选型hibernate、Spring Data JPA和 Mybatis 对比优缺点以及应用场景一、Mybatis 优点:上手容易、提供xml标签、支持动态SQL编程,Mapper映射,支持对象与数据库的ORM字段关系映射Mybatis 缺点:SQL语句的编写工作量较大,尤其是字段多、关联表多时,更是如此,对开发人员编写SQL语句的功底有一定要求。 SQL语句依赖... 关于 Mybatis JPA 孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。 我也看过知乎上一些问答,各有各的理由,感觉都挺有道理。如果让我不带感情色彩地去分辨,其实我也是懵的,因为真的是公说公有理婆说婆有理。 而在国内,不得不承认,用 Mybatis 的公司确实是要比用 JPA 的多,但是在 2015 年以前,用 Hib Mybatis 相当于将mapper中的入参和出参结果集封装到java的POJO类中,实际上 Mybatis 是半 ORM ,它鼓励开发人员自己去写sql,也正是因为sql语句要自己写,所以 Mybatis 是将java方法与sql语句关联起来,而没有将java对象与数据库关联起来。 流行的 ORM 框架 1、 JPA JPA 本身是一种 ORM 规. ORM 框架 jian A YEAR AGO (2017-04-10) orm , data base 标准:实现O/R mapping,基于promise,支持原生SQL语句,支持连接池,支持事务,支持ES6/ES7。 name star createtime persistencejs 1681 2010-01-31 sequelize 9354 2010-07-1...
一、现状描述 目前java 持久层 ORM 框架 应用最广泛的就是 JPA Mybatis JPA 只是一个 ORM 框架 的规范, 对该规范的实现比较完整就是 Spring Data JPA (底层基于 Hibernate 实现),是基于 Spring 的数据持久层 框架 ,也就是说它只能用在 Spring 环境内。 Mybatis 也是一个优秀的数据持久层 框架 ,能比较好的支持 ORM 实体关系映射、动态SQL等。 笔者在学习这两个 框架 的...
Java开发中的 ORM 框架 有很多,比较流行的有: 1. Hibernate Hibernate 是目前最流行的 ORM 框架 之一,它是一个开源的对象关系映射 框架 ,可以将Java对象映射到关系 数据库中。 2. MyBatis MyBatis 是一款优秀的持久层 框架 ,它支持定制化的SQL、存储过程以及高级映射。 3. Spring Data JPA Spring Data JPA Spring 框架 中的一个模块,它为 JPA 规范提供了一种简化的编程模 。 4. TopLink:TopLink是一个商业的 ORM 框架 ,它提供了高性能的数据持久化解决方案。 5. EclipseLink:EclipseLink是一个开源的 ORM 框架 ,它是TopLink的一个分支,提供了高性能、灵活的数据持久化解决方案。 这些 ORM 框架 都有各自的特点和优势,开发者可以根据自己的需求来 择合适的 框架