记录一次阅览的过程
相关了解到的有Mybatis,Hibernate,JPA+QueryDSL,sagacity-sqltoy,Bee。
简单的记录一下网上的评论和自己的理解。

Mybatis

他的本质就是一个SqlUtils。并不是一个orm框架。他的作用是将sql语句与java代码分离开来。通过xml的格式来书写sql语句。进而完成对数据库的控制,不用手动设置参数和对结果集的处理因为是靠自己去写sql语句的。所以他的性能取决于你对sql的理解程度。

Mybatis-plus

这里引用一句他人的评论

主要是mybatis带来了几个问题:1、大量的人见到xml就反,就觉得low,这个问题的核心是mybatis的sql写法不直观,基本就是传统java中拼sql的逻辑xml化;2、大家其实都认同单表操作jpa和简单查询QueryDSL,所以产生了大量基于mybatis的plus来做JPA功能;网上不下二十个mybatis的增强,其实这些都可以从JPA、JOOQ上得到启发,基本没有什么创新,无法解决项目中的实质痛点。

Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成简单的SQL语句,自动执行,对于复杂的sql语句,Hibernate不需要自己编写,因此它的性能不是很好。
他可以完全通过调用方法来完成所有的对数据库的操作,可以不用进行sql语句的操作和优化。

ORM的工作原理

ORM 的工作原理

  1. 以一定的映射方式,把实体模型和数据库关系的映射
  2. ORM框架启动时加载这些映射和数据库配置文件
  3. ORM通过对原生jdbc的封装提供更加便利的操作
  4. Dao通过ORM提供便捷API对象的方式操作数据库关系

JPA+QueryDSL

什么是JPA

JPA 是Java Persistence API的缩写,是一套由Java官方制定的ORM标准。当制定这套标准以后,市场上就出现很多JPA框架。如:OpenJPA(apache),EclipseTop(linktop)(eclipse),Hibernate。
他的出现比Hibernate更早,他属于元老级别的标准。
他不需要使用XML映射文件。他大多采用注解的方式,将实体类与表、其中的字段,列名,相对应。

QueryDSL

他就类似于Lombok。用来做简单的单表操作

Bee 完整的ORM框架

尚未去了解,可以去官网查看。他被说的很厉害,但尚未尝试。
gitee项目

sqltoy

尚未了解