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

createh53个月前 (03-16)技术教程21

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

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

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

1. JDBC(Java DataBase Connectivity)

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

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

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 之间的相互关系。你了解了吗?

相关文章

JDBC与ORM发展与联系 JDBC简介(九)

回顾下JDBC的概念:JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Ja...

Spring JDBC-Spring对DAO的支持详细讲解

【摘要】 概述Spring的DAO理念统一的异常体系统一的数据访问模板 使用模板和回调机制模板类 数据源 配置数据源 DBCP数据源C3P0数据源 获取JNDI数据源Spr...概述Spring的DA...

GBASE南大通用数据JDBC处理数据类型与 Java 数据的类型的灵活转换

由于 SQL 数据类型和 Java 数据类型是不同的,因此需要某种机制在使用 Java 类型的应用程序和使用 SQL 类型的数据库之间来读写数据。为此,JDBC 提供了 getXXX 和 setXXX...

最简洁详细的SSM框架整合

创建项目和SSM框架整合思路一、创建项目因为后面会配置springMVC,所以用IDEA的web骨架创建一个maven项目。创建项目目录如下,同时,项目需要的包和文件已手动创建好了:项目目录上图中,a...

Javaweb知识 day19 Filter&Listener

今日内容 1. Filter:过滤器 2. Listener:监听器一、Filter:过滤器1.1概念: * 生活中的过滤器:净水器,空气净化器,土匪、 * web中的过滤器:当访问服务器的资源时,过...