龙空技术网

[Java速成] 数据库基础,Connector/J、JDBC、JPA的关系(day 7)

水滴的程序员梦 157

前言:

今天朋友们对“java存储数据库功能的包”大约比较注重,朋友们都需要了解一些“java存储数据库功能的包”的相关文章。那么小编也在网摘上收集了一些对于“java存储数据库功能的包””的相关文章,希望我们能喜欢,你们快快来了解一下吧!

先来看一个问题:在创建 Java 项目,选择数据库依赖时,如下图,你知道该如何正确的选择合适你项目的依赖吗?

选择正确的 SQL 依赖

看完这篇文章,就能有个很好的认知了。

后续的文章中,我们也需要使用数据库,所以在正式开始使用 Java 数据库框架(如持久层框架)之前,也需要先来了解一下数据库相关的基础知识。

1. JDBC(Java DataBase Connectivity)

Java 应用通过 JDBC 接口访问数据库, 为各种数据库(如 mysqloracle)提供一个统一的接口,应用程序通过 JDBC 执行各种 SQL 操作。

JDBC API 定义如何访问关系型数据库中的数据。JDBC driver 实现特定类型数据库的 JDBC APISpring JDBC 是 Spring 提供的在 JDBC API 之上的一个抽象层,目的是为了简化和 DB 的交互。

JAVA 持久层框架概览

2. mysql-connector-java

MySQL Connector/J 提供了使用标准 JDBC API Java 应用程序连接到 MySQL 的驱动程序支持。MySQL Connector/J 是一个 JDBCType4 驱动程序,实现 JDBC4.2 规范。

Connector/J provides driver support for connecting to MySQL from Java applications using the standard Java Database Connectivity (JDBC) API.`

3. ORM(Object Relational Mapping)

ORM 的作用是在数据库表与 Java 对象之间建立映射,理论上来说有 ORM 就无需直接通过 SQL 操作数据库了,通过 Java 对象即可,这样会方便很多。

4. JPA(Java Persistence API)

JPAJava 持久层接口),定义了 Java 对象持久化的标准方法,是 ORM 的一个标准,使用 ORM 机制弥合面向对象模型与存储在关系数据库中的数据之间的差距。

JPA 建立在 JDBC 之上,也是通过 JDBC 访问数据库。Hibernate 是实现 JPA 标准的一个有名例子。

JDBC API solves interaction with the database, while JPA solves storing/retrieving of objects to/from databases in an object-oriented way. Underneath, JPA implementations rely on JDBC drivers to access databases.

5. MyBatis

MyBatis 不是 JPA 的一个实现,可以把它理解为加强版的 SQL,实现了诸如动态 SQL、结果集映射等,高效又不失灵活。它克服了 ORM 过于笨重的缺点(比如,在多表联合查询时相当繁琐),又避免了直接使用原始的 JDBC 操作数据库过于低效。但同样的,Mybatis 也 是建立在 JDBC 之上,通过 JDBC 访问数据库的。

小结

本文主要分享了 JDBCConnector/JJPAORM,以及 MyBatis 之间的相互关系。你了解了吗?

标签: #java存储数据库功能的包