java持久层框架访问数据库一般有两种方式:
- 以
SQL为核心,封装JDBC操作,如:MyBatis - 以
java实体类为核心,将实体类和数据库表之间映射的ORM框架,比如:Spring Data JPA和Hibernate
接下来就是详细的介绍一些这些概念
JDBC
JDBC的概念如下:
JDBC(java database connectivity)-java数据库连接,是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口(API),提供了诸如查询和更新数据库中数据的方法
其实JDBC就是一套接口规范,这套规范定义了客户端访问数据库的API,然后再由具体的数据库厂商实现这套接口规范形成具体的数据库驱动器,这样用户就可以使用这套JDBC规范和数据库驱动来访问数据库了,并且针对不同的数据库厂商只需要更换驱动器就好了
ORM
面向对象的编程语言中常用的持久性存储都是基于实体间关系的关系型数据库;所以之前就有人提出用对象来表达这种实体间的关系,这样的话就可以用面向对象的编程方式来操作关系型数据库了
ORM (Object Relational Mapping)对象-关系映射,就是对象与关系数据库之间的映射,将面向对象中的类与表映射,将对象实例与表中的记录映射,将对象属性与字段进行映射
ORM通过对象实现对数据库操作的封装,简化了用户操作数据库的流程,用户只需要使用面向对象的语法就可以实现对数据库的操作

Orm的优缺点
优点:
- 简化业务代码,使得代码易于理解
- 统一了模型定义,更加易于维护和更新
- 避免用户写出一些性能不佳的
SQL语句
缺点:
ORM有很多的API和设置需要学习- 对于复杂的查询,
ORM可以无法表达,即便可以表达,性能也不如原生的SQL
JPA
JPA概念如下:
JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中
其实,JPA本质上是一种orm规范,定义了java持久化数据的接口,它并不是一种具体的框架;Hibernate就是一种对JPA的一种具体的实现
Spring Data JPA
Spring Data JPA是Spring Data系列中的一个持久层框架,Spring Data JPA是基于JPA规范的更高层次的一种抽象
为什么有了JPA还要再抽象出一层Spring Data JPA呢?这是因为不同的ORM框架之间切换需要编写不同的代码,而使用Spring Data JPA能够方便的在不同的ORM框架之间进行切换而不需要更改代码
Spring Data JPA旨在通过将统一ORM框架的访问持久层的操作,来提高开发人的效率;在使用Spring Data JPA的时候还是需要引入具体的ORM框架,比如:Hibernate,openJPA等





















