Java ORM框架简介 JDBC-JPA-Hibernate_mybatis

Java ORM框架简介

一、JDBC & ORM(Object Relational Mapping)框架

所有Java程序都是通过JDBC(Java Data Base Connectivity)连接数据库的。
JDBC是一种典型的桥接模式(Bridge),只定义了接口规范,具体的实现交由不同的数据库厂商实现。

JDBC简单的使用一行sql都需要很复杂的几个步骤(创建连接,执行sql,读取返回,转换成对象,关闭)。
因此平时编程一般不直接使用JDBC来编程,而是使用ORM(Object Relational Mapping)框架。

ORM就是对数据库的表和POJO(Plain Ordinary Java Object)简单Java对象的做映射的框架。

二、JPA & Spring Data JPA

2.1 JPA

JPA(Java Persistence API)Java持久层接口是一套ORM规范接口(interface),Hibernate底层调用JDBC实现了这一套规范。

2.2 Spring Data JPA

还有一个概念叫Spring Data JPA,是Spring Data的子模块,其对 JPA 规范进行再次封装抽象,进一步简化了JPA开发,但其底层仍旧使用的是Hibernate。

Spring Data JPA按照约定的【方法命名规则】写dao层接口,就可以在不写接口实现的情况下完成对数据库的访问和操作,同时还提供了除了CRUD之外的如分页、排序、复杂查询等功能。

三、 Hibernate 与 myBatis

Hibernate是对JPA进行了非常轻量级的对象封装的一个全自动ORM框架
Hibernate可以大大简化屏蔽SQL,只需要写HQL,但是,其有明显的缺点:

  1. 全表映射,更新需要发送所有字段。
  2. HQL简单,但是性能差,互联网系统需要优化SQL,Hibernate做不到。

为了更灵活、减少数据传输,同时优化SQL的需要,诞生了一种新的半自动ORM框架Mybatis。称之为半自动的原因是他需要手动匹配POJO,SQL和映射。

对于数据的操作,hibernate是面向对象的,而MyBatis是面向关系的。

四、数据相关的缩写 POJO Dao DO DTO PO VO

  1. POJO :plain ordinary java object,Java简单对象。

  2. Dao :data access object,数据访问对象(POJO持久化后)。

  3. DTO :data transfer object,泛指用于表示层与服务层之间的数据传输对象(POJO传输中)。

  4. PO :persistent object,持久化对象(POJO持久化)。

  5. VO :view Object,视图对象,表示层,一般用来给前端展示。

  6. DO :Domain object,抽象化的业务实体。

  7. BO :business object,业务对象。

你可能感兴趣的:(Java ORM框架简介 JDBC-JPA-Hibernate_mybatis)