序言
Spring Data JPA
作为 Spring Data
中对于关系型数据库支持的一种框架技术,属于 ORM
的一种,通过得当的使用,可以大大简化开发过程中对于数据操作的复杂度。
本文档隶属于《 Spring Data JPA
用法与技能探究》系列的第一篇。本系列文档规划对 Spring Data JPA
进行全方位的使用介绍,一共分为 5篇 文档,如果感兴趣,欢迎关注交流。
《Spring Data JPA用法与技能探究》系列涵盖内容:
- 开篇介绍 —— 《JDBC、ORM、JPA、Spring Data JPA,傻傻分不清楚?一文带你厘清个中曲直,给你个选择SpringDataJPA的理由!》
- 快速上手 —— 《SpringBoot集成JPA介绍》
- 深度进阶 —— 《JPA核心类型与用法介绍》
- 可靠保障 —— 《聊一聊数据库的事务,以及Spring体系下对事务的使用》
- 周边扩展 —— 《JPA开发辅助效率提升方案介绍》
本章节主要对Spring Data JPA的整体情况以及与其相关的一些概念进行一个简单的介绍。
在具体介绍Spring Data JPA之前,我们可以先来思考一个问题: 在JAVA中,如果需要操作DB,应该怎么做?
很多人可能首先想到的就是集成一些框架然后去操作就行了、比如mybatis、Hibernate框架之类的。
当然,也可能会有人想起JDBC。
再往深入想一下:
- JAVA里面的写的一段DB操作逻辑,是如何一步步被传递到DB中执行了的呢?
- 为什么JAVA里面可以去对接不同产商的DB产品?
- 为什么有JDBC、还会有各种mybatis或者诸如Hibernate等ORM框架呢?
- 这些JDBC、JPA、ORM、Hibernate等等相互之间啥关系?
- 除了MyBatis、Hibernate等习以为常的内容,是否还有其他操作DB的方案呢?
- ...
带着这些问题,我们接下来一步步的进行探讨,先树立对Spring Data JPA的正确印象。
1. 需要厘清的若干概念
1.1. JDBC
谈到JAVA操作数据库相关的概念,JDBC是绕不过去的一个概念。
先来介绍下JDBC究竟是个什么概念。
JDBC(Java DataBase Connectivity),是java连接数据库操作的原生接口。
JDBC对Java程序员而言是API,为数据库访问提供标准的接口。由各个数据库厂商及第三方中间件厂商依照JDBC规范为数据库的连接提供的标准方法。
概念阐述的可能稍微有点抽象,说的直白点可以这么理解:各个产商的DB产品很多,JAVA联合各个DB产商定了个规范,JAVA可以按照规范去编写代码,就可以用相同的操作方法去操作不同产商的DB了。也就是说JDBC是JAVA与各个DB产商之间的一个约定规范、约束的是DB产商的实现规范。
基于JDBC,我们可以在JAVA代码中去执行DB操作,如下示意:
package com.txw.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; @SuppressWarnings("all") // 注解警告信息 public class JdbcTest01 { public static void main(String[] args)