R e i - D r e a m
for Laravel
Guest
login

最終投稿日:2026年08月09日

【検証環境】- Windows11 - JDK 17-LTS - Eclipse 2024-09 R - Wildfly 28.0.1

目次

データベース連携(環境構築)

サンプルDB作成

連携するデータベースは『MySQL』で話を進めていきます。
    ※フレームワークとしての内容は、それ以外のSQLでもほぼ変わりません
手元に『MySQL』が無い方は 「XAMPP」をインストール するのが早いです。
まずは学習用として以下DBを作成します。
    CREATE DATABASE jakarta_db;
次に『users』テーブルを作成しましょう。
○ ユーザー情報DDL
CREATE TABLE users (
id                            int                                AUTO_INCREMENT PRIMARY KEY ,
mail                       VARCHAR(50)          NOT NULL UNIQUE                             ,
pass                       VARCHAR(255)       NOT NULL                                               ,
name                    VARCHAR(30)          NOT NULL                                               ,
active                    CHAR(1)                    DEFAULT ' '                                             ,
version                  int                               DEFAULT 0                                              ,
create_ymd        date                                                                                                ,
create_hms        TIME                                                                                               ,
update_ymd      date                                                                                                ,
update_hms      TIME                                                                                               ,
del_sn                  CHAR(1)                     DEFAULT ' '
) ENGINE=InnoDB;

Wildflyにデータソースを設定

次に『Wildfly』にデータソースを設定します。
一見『Apache』の様なHTTP通信を捌くWebサーバーの様に思われるかもしれませんが、旧名を『JBoss AS』と言い、
Java EE / Jakarta EE の処理を実行する『アプリケーションサーバ』となります。
まずは自身のMySQLのバージョンを確認しましょう。
ターミナル

C:\~\hoge> mysql --version
  mysql Ver 9.7.0 for Win64 on x86_64 (MySQL Community Server - GPL)

○ ドライバの入手
https://dev.mysql.com/downloads/connector/j/
上記公式サイトよりドライバを入手します。
ページ内の「Select Operating System」で 「Platform Independent」 を選択します。
ZIP形式(mysql-connector-j-9.7.0.zip) または TAR.GZ形式のアーカイブが表示されるので、ダウンロードします。
    ※Windowsの場合は「ZIP」です
次画面で何やら「Login」「Sign Up」ボタンが表示されたら『No thanks, just start my download.』をクリックしましょう。
ダウンロードしたら、ZIPファイルを解凍します。
展開されたファイル『mysql-connector-j-9.7.0.jar』がドライバとなります。
○ Wildfly設定
① 入手したドライバを以下ディレクトリへ設置します。
    ~\wildfly-28.0.1.Final\standalone\deployments
「bin/standalone.bat」より、Wildflyを起動します。
別のターミナルを開きます。
・「cd」コマンドでカレントを「bin」へ移動します
・「jboss-cli.bat --connect」を叩きます。
・接続に成功すると、プロンプトが [standalone@localhost:9990 /] という表示に変わります。
以下のコマンドをご自身の環境に合わせて実行します(長いけど1行で実行する事)
data-source add --name=MySqlDS --jndi-name=java:jboss/datasources/MySqlDS --driver-name=mysql-connector-j-9.7.0.jar --connection-url=jdbc:mysql://localhost:3306/jakaruta_db --user-name=root --password=xxxxxxxx
MySQLの場合は基本このままの設定で良いです。
『DB名』『接続ユーザー名』『接続パスワード』のみ変更して下さい。
接続テスト
同様のターミナルで以下を叩く
ターミナル

[standalone@localhost:9990 /] /subsystem=datasources/data-source=MySqlDS:test-connection-in-pool
{
    "outcome" => "success",
    "result" => [true]
}

上記の様に『success』と表示されれば成功です。
画面確認
以下URLからWildflyの管理画面へアクセスします。
    http://localhost:9990
画面上段リンク『Deployments』選択
左メニューに設定した『mysql-connector-j-9.7.0.jar』があるハズです。
それを選択すると、右画面が明らかにアクティブって感じの表示になります。
満足したらWildflyを完全に閉じます。
ポイント

これまでの設定で、実は以下のファイルが書き換わっています。
    ~\wildfly-28.0.1.Final\standalone\configuration\standalone.xml

ですので、排他制御でファイルを開いてると確実に失敗するのでご注意を!
因みに今回は以下(太文字)の部分が追加されました。
~ 省略 ~
    </security>
</datasource>

<datasource jndi-name="java:jboss/datasources/MySqlDS" pool-name="MySqlDS">
    <connection-url>jdbc:mysql://localhost:3306/jakaruta_db</connection-url>
    <driver>mysql-connector-j-9.7.0.jar</driver>
    <security>
        <user-name>root</user-name>
        <password>xxxxxxxx</password>
    </security>
</datasource>
<drivers>
    <driver name="h2" module="com.h2database.h2">
~ 省略 ~

エクリプスをJPA仕様に設定する

①『pom.xml』に依存関係を追加
pom.xml

<!-- JPA -->
<dependency>
    <groupId>jakarta.persistence</groupId>
    <artifactId>jakarta.persistence-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
</dependency>

② プロジェクト・ファセットを設定
・[プロジェクト名] >(右クリック)> [プロパティ]
・左メニューから 「プロジェクト・ファセット (Project Facets)」 を選択
・画面中央のリストにある『JPA』にチェックを入れます
・つづいて右側のプルダウンよりバージョンを選択します
        ⇒ WildFly 27以降(Jakarta EE 10)を使っている場合は『3.1』とします
・画面下に表示される『より詳しい構成が必要..』というリンクをクリックします
③ JPAファセット(POP表示された画面)
・プラットフォームは、②のプルダウンで設定した値
・JPA実装は『ライブラリー構成を無効』を選択
・接続の追加をクリックする
④ 接続プロファイル(POP表示された画面)
・MySQLを選択し『次へ』
・何か古いドライバしか表示されないが、構わず一番新しいのを選択
・同画面の『jarリスト』を選択します
・先ほど選択したドライバを選択して『JAR/ZIPの除去』押下
・『JAR/ZIPの追加』押下
    ⇒ ここで新たなドライバを指定するので、先ほどダウンロードしたドライバを以下へ設置して選択します。
        ~\eclipse\plugins\mysql-connector-j-9.7.0.jar
・同画面の『プロパティ』を選択します
・項目『Driver Class』が「com.mysql.jdbc.Driver」となっている場合は古いです。
    ⇒ クリックすると編集できるので『com.mysql.cj.jdbc.Driver』に書き換えます
・『OK』押下で「ドライバー及び接続の~」画面へ戻ります
・ここで接続情報を設定して『接続テスト』を押下します
・成功した場合は『パスワードの保存』にチェックを入れ『完了』押下
⑤『JPAファセット』画面へ戻るので『注釈付きクラスをpersistence.xmlに記述』にチェックがあるのを確認し『OK』押下
⑥『プロジェクト・ファセット』画面へ戻るので『適用して閉じる』押下
ポイント

[Ctrl]+[Shift]+[r]で『persistence.xml』の作成された場所を確認してみましょう。
もし以下の場所に作成された場合は間違いです。
    /src/main/java/META-INF/persistence.xml

この場合『META-INF』毎以下ディレクトリへ移動しましょう。
    /src/main/resources/META-INF/persistence.xml
    ※ドラッグすれば移動できます
JPA(WildFly内のHibernate)は、クラスパスの直下にある『META-INF/persistence.xml』を探すため、ここへ設置する必要があります。

persistence.xml

まずは先ほど自動的に作成された『src/main/resources/META-INF/persistence.xml』を編集します。
以下の様に修正します。
persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="https://jakarta.ee/xml/ns/persistence"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence
                                https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd"
            version="3.0">
    <!-- トランザクションタイプはコンテナ管理の "JTA" にする -->
    
<persistence-unit name="myMysqlUnit" transaction-type="JTA">
        <!-- WildFlyで設定したJNDI名を指定(例: java:jboss/datasources/ExampleDS) -->
        <jta-data-source>java:jboss/datasources/MySqlDS</jta-data-source>
        <properties>
            <property name="jakarta.persistence.schema-generation.database.action" value="none" />
            <property name="hibernate.show_sql" value="false" />
            <property name="hibernate.format_sql" value="false" />
        </properties>
    </persistence-unit>
</persistence>

persistence-unit 『myMysqlUnit』はJPAフレームワークを呼び出す名前を任意に付けられます。
『JTA』とする事でコンテナ管理トランザクションを使えます。
※『RESOURCE_LOCAL』は直接トランザクションを制御する場合に使います。
jta-data-source 『Wildfly設定』で設定したデータソース名となります。
hibernate.show_sql コンソールに発行したSQLの内容を出力するか(ウザいので[false])
hibernate.format_sql 上記SQLを整形するか(同じく[false])
ログインしてコメントを残そう!!


きっぷる