Dev Study
← Spring コース

11. JDBC・JPA・Hibernate と、略語の早見表

は、Java から SQL でデータベースを使うための標準の API で、 に入っています。Node で言えば、pg や mysql2 のようなドライバを直接使う層に近いものです。違うのは、JDBC が決めているのは共通の API だけで、個々のデータベースと実際に話すドライバは別の として足す点です。接続を取り出す窓口は、 というで表されます。

(現在の正式名は Jakarta Persistence)は、と表の対応づけの標準仕様です。この対応づけを (object/relational mapping)と呼び、表の行に対応づけられるオブジェクトをと呼びます。JPA は仕様なので、動かすには実装が要ります。 はその実装の1つです。TypeORM や Prisma とは、ORM であるという点までが対応します。

混同しやすいのは名前です。javax.sql.DataSource の は JDK の一部で、 への改名の対象ではありません。略語と、よく見るファイルやフォルダの名前は、サンプル集の早見表にまとめました。・・ は仕様の用語ではなく、慣習的な呼び名です。次のセクション「全体像と構成」から、これらの語が実物のどこに現れるかを見ていきます。

点線の付いた語はタップすると説明が出ます。用語集を開く →

データベースの用語の重なり(上が自分のコードに近い側)
自分のコードエンティティ(表の行に対応づけるクラス)を読み書きする
オブジェクトを保存する・読む
JPA仕様。正式名は Jakarta Persistence
Hibernateその実装の1つ。SQL を組み立てる
Node: TypeORM / Prisma(ORM である、という点まで)
SQL を送る
JDBCJDK に入っている共通の API。接続の窓口が DataSource
JDBC ドライバデータベースごとの実装。別の JAR
Node: pg や mysql2
接続
データベースこのコースの実験では H2
  • ・下のコードは JDK だけで動かしています。JDBC の API は見つかりますが、ドライバが1つも無いので接続は失敗します。API とドライバが別物であることの実物です
  • ・Hibernate の入門文書は、アプリケーションサーバなどのコンテナ環境の外で Hibernate を使う場合について、Hibernate 本体と合わせて適切な JDBC ドライバを依存に入れるよう書いています
  • ・JDBC は Java Database Connectivity の略です(Oracle の JDK 8 の文書の表記。JDK 25 の API 文書は the JDBC API としか書いていません)
  • ・Hibernate は JPA の実装であると同時に、独自の API も持っています。Spring Data JPA は、JPA を使うリポジトリ(データの出し入れの窓口)を書きやすくする Spring のプロジェクトです。このリポジトリは、Maven のリポジトリ(JAR の置き場)とは同じ語の別の意味です
  • ・このコースの実験での版は Hibernate ORM 7.4.5、Jakarta Persistence 3.2、H2 2.4.240 です。エンティティが実際にどう保存されるかは後のレッスンで扱います

▶ サンプルコードを実行してみよう(自由に書き換えてOK)

Java

図やコードに出てくる用語(タップで説明)

サンプルコードで身につける(5本) →

学んだ概念を、素朴な例から実務寄りの例まで5つの具体例で確認します。

公式ドキュメントで詳しく ↗