カテゴリ: Quarkus 更新日: 2026/02/19

QuarkusとHibernate ORMで始めるデータベース接続入門|初心者向けに最初のDB接続をやさしく解説

QuarkusとHibernate ORMの基本:最初のDB接続
QuarkusとHibernate ORMの基本:最初のDB接続

先生と生徒の会話形式で理解しよう

生徒

「Quarkusでデータベースに接続したいんですが、Hibernate ORMって何から始めればいいですか?」

先生

「Quarkusでは、Hibernate ORMを使うことで、Javaのコードから安全にデータベース操作ができます。まずは基本的な仕組みと最初の接続設定を理解しましょう。」

生徒

「設定ファイルとか難しそうで不安です……」

先生

「大丈夫です。Quarkusは設定がシンプルなので、初心者でもデータベース接続までスムーズに進められます。」

1. Quarkusとは何かをやさしく理解する

1. Quarkusとは何かをやさしく理解する
1. Quarkusとは何かをやさしく理解する

Quarkusは、Java向けに作られたモダンなフレームワークです。高速起動や低メモリ使用量が特徴で、クラウドネイティブやマイクロサービス開発に向いています。従来のJavaフレームワークと比べて設定が少なく、初学者でも扱いやすい点が魅力です。Quarkusでは拡張機能という仕組みを使って、データベース接続やREST API、セキュリティなどを簡単に追加できます。

特にデータベース接続では、QuarkusとHibernate ORMを組み合わせることで、SQLを意識しすぎずにJavaのオブジェクトとしてデータを扱えるようになります。

2. Hibernate ORMの役割とメリット

2. Hibernate ORMの役割とメリット
2. Hibernate ORMの役割とメリット

Hibernate ORMは、Javaのオブジェクトとリレーショナルデータベースを橋渡しする仕組みです。ORMとは、オブジェクトとテーブルを対応づける考え方のことを指します。Hibernate ORMを使うことで、INSERTやSELECTといったSQLを大量に書かなくても、Javaのクラス操作だけでデータベースにアクセスできます。

QuarkusではHibernate ORMが公式にサポートされており、設定や起動が非常に高速です。開発中の生産性が高く、初心者でもデータベース連携の流れを理解しやすい構成になっています。

3. Quarkusプロジェクト作成と拡張機能の追加

3. Quarkusプロジェクト作成と拡張機能の追加
3. Quarkusプロジェクト作成と拡張機能の追加

Quarkusでデータベース接続を行うには、最初にHibernate ORMとデータベース用の拡張機能を追加します。代表的なデータベースとしては、PostgreSQLやMySQL、H2などがあります。学習用途では、設定が簡単なH2データベースがよく使われます。

拡張機能を追加することで、Quarkusは自動的に必要なライブラリを読み込み、Hibernate ORMとデータベースの連携を準備してくれます。これにより、複雑な初期設定を意識せずに学習を進められます。

4. application.propertiesで行うデータベース接続設定

4. application.propertiesで行うデータベース接続設定
4. application.propertiesで行うデータベース接続設定

Quarkusのデータベース接続設定は、application.propertiesという設定ファイルにまとめて記述します。このファイルでは、データベースの種類、接続先、ユーザー名、パスワードなどを指定します。設定内容が一か所に集約されているため、後から見直しやすい点も初心者に優しいポイントです。


quarkus.datasource.db-kind=h2
quarkus.datasource.jdbc.url=jdbc:h2:mem:testdb
quarkus.datasource.username=sa
quarkus.datasource.password=sa
quarkus.hibernate-orm.database.generation=drop-and-create

この設定では、メモリ上にH2データベースを作成し、アプリ起動時にテーブルを自動生成します。初めてのDB接続では、動作確認がしやすくおすすめです。

5. エンティティクラスでテーブルを表現する

5. エンティティクラスでテーブルを表現する
5. エンティティクラスでテーブルを表現する

Hibernate ORMでは、データベースのテーブルをJavaのクラスとして定義します。このクラスをエンティティと呼びます。エンティティには、テーブル名やカラム情報をアノテーションで指定します。これにより、Javaコードとデータベース構造が自然に結びつきます。


import jakarta.persistence.Entity;
import jakarta.persistence.Id;

@Entity
public class User {

    @Id
    public Long id;

    public String name;
}

このシンプルなエンティティ定義だけで、Userテーブルが自動的に作成されます。初心者でも構造を直感的に理解しやすい書き方です。

6. Hibernate ORMを使った基本的なデータ保存処理

6. Hibernate ORMを使った基本的なデータ保存処理
6. Hibernate ORMを使った基本的なデータ保存処理

次に、Hibernate ORMを使ってデータを保存する基本的な処理を見てみましょう。Quarkusではトランザクション管理も簡単で、アノテーションを付けるだけで安全なデータ操作が可能です。


import jakarta.transaction.Transactional;

public class UserService {

    @Transactional
    public void createUser(Long id, String name) {
        User user = new User();
        user.id = id;
        user.name = name;
        user.persist();
    }
}

このように、エンティティを生成して保存するだけで、データベースにレコードが登録されます。SQLを書かずに操作できる点が大きな利点です。

7. データ取得処理の基本と考え方

7. データ取得処理の基本と考え方
7. データ取得処理の基本と考え方

データベースからの取得処理も、Hibernate ORMでは非常にシンプルです。IDを指定して検索したり、一覧を取得したりする処理を、Javaコードだけで記述できます。これにより、ビジネスロジックに集中した設計が可能になります。


public class UserRepository {

    public User findById(Long id) {
        return User.findById(id);
    }
}

この例では、IDを指定して単一のデータを取得しています。初心者の段階では、まずこの基本操作をしっかり理解することが重要です。

8. 初心者がつまずきやすいポイントと注意点

8. 初心者がつまずきやすいポイントと注意点
8. 初心者がつまずきやすいポイントと注意点

QuarkusとHibernate ORMでのデータベース接続では、設定ミスやアノテーションの付け忘れがよくあるつまずきポイントです。特にIDの指定やトランザクション管理は、動作に大きく影響します。また、開発用と本番用でデータベース設定を分ける考え方も、早い段階で意識しておくと理解が深まります。

最初はシンプルな構成で動かし、少しずつ機能を追加していくことで、QuarkusとHibernate ORMのデータベース接続の全体像が自然と身についていきます。

カテゴリの一覧へ
新着記事
New1
Micronaut
Micronautの@Factoryとは?複雑なBean生成を管理するための方法を解説
New2
Quarkus
QuarkusのDIとCDIを完全理解!@Producesでプロデューサーメソッドを使う方法を初心者向けに解説
New3
Java
JavaのStringBufferクラスを徹底解説!スレッド安全な文字列操作の仕組みと使い分け
New4
Micronaut
Micronautで非同期HTTP処理を行う方法!リアクティブ対応の基礎知識
人気記事
No.1
Java&Spring記事人気No1
Quarkus
Quarkus入門!GitHub ActionsでCI/CDパイプラインを構築して自動ビルドを実現する方法
No.2
Java&Spring記事人気No2
Java
Javaのコンパイルと実行の流れを解説!JVM・JDK・JREの違いも初心者向けに整理
No.3
Java&Spring記事人気No3
Quarkus
QuarkusのCI/CD入門!GitHub Actionsで自動デプロイを実現する方法
No.4
Java&Spring記事人気No4
Micronaut
Micronautのルーティング設定ガイド!プレフィックス付与とAPIバージョニングの基本
No.5
Java&Spring記事人気No5
Micronaut
Micronautのフィルタ徹底解説!HTTPリクエスト共通処理をスマートに追加する方法
No.6
Java&Spring記事人気No6
Java
Java Optional ifPresentの使い方を徹底解説!nullチェックをスマートに省略する方法
No.7
Java&Spring記事人気No7
Java
Java Functionインタフェースの使い方を完全ガイド!map変換と処理チェーンを理解する
No.8
Java&Spring記事人気No8
Java
JavaのString比較を徹底解説!equalsと==の違い、初心者が陥る罠とは?