skillup

技術ブログ

Database Java

GlassFishでDB接続

投稿日:

一般的にWEB系の言語で、DBを使う場合、WEBサーバーとDBサーバーは単独に動くことが一般的です。

JavaEEではアプリケーションサーバーとしてGlassFishを使いますが、先日、GlassFishを通さないとJavaEEでDBが動かせないということを知りました。そのためJavaEEではデータベースの情報をGlassFishに登録することが必要です。(Netbeansからもできますが、あえて動きを理解するためにGlassFishを直接操作したいと思います。)

JavaEEとDB接続

ローカルでGlassFishをインストールした場合、以下のURLでGlassFishの管理画面にアクセスできます。

http://localhost:4848/

ディフォルトではポートが4848なはずです。

こちらの画面でDBの設定を行います。

JDBC Connection Poolの設定

左記のメニューの「JDBC ConnectionPool」という場所がDBの接続情報を登録する場所になります。

PoolNameというのは任意の名称をつけて構いません。

Resource Type = javax.sql.DataSource

Database Driver Vender = MySql (ここはDBによって変わる)

Intorospecチェック無しで登録しましょう。

image001

Nextを押すと様々なプロパティを入力するページに飛びます。

こちらは様々なプロパティがありますが必要最低限のものは下記で問題ありません。

(一度全削除してから設定しても問題ありません。)

URL  jdbc:mysql://localhost:3306/DBの名称
port 3306
ServerName ホスト名
user ユーザー名
password パスワード

(上記情報はglassfish-resource.xmlがあればそちらを参考にすること)

ちなみにパスワードは空白ではダメなようです。設定を行い、問題なければ「save」を押したときに下記のようなメッセージ「New Values successfully saved」が出力されます。

失敗すると赤色のマークになります。その場合、設定情報が間違っていないかもう一度確かめましょう。

image003

aaa

上記画面で「ping」を押して「ping succeeded」がでればOKです。

Linux環境で行う場合は、MySQLのドライバを別途通す必要が出てきます。

詳しくはCentOS上にglassfish構築+arquillianテストの「glassfishからDBへの接続」に記述してあります。

JDBC Resourceの設定

接続プールを設定したあとはこれを元に「JDBC Resource」の設定を行います。

これはJavaとGlassFishのDB情報をつなぐ窓口になります。

JNDIという名称は任意の名称をつけて問題ありませんが、Pool Nameということろは先ほど設定したJDBC Connection Poolの名称を入力します。

この情報を入力すれば「OK」を押しましょう。これでJavaEEとDBの接続をGlassFishを通して行うことができます。

image005

persistence.xmlの設定

上記作業ができたら次はJavaEEでプロジェクト画面に移動し、持続性ユニット(persistence.xml)を作成します。

永続性プロパイダはEclipseLinkを使用し、データソースを先ほど作成したJDBCリソースの名称を選択します。

(この時点でプルダウンにはいってなければ認識されていません。)

また表生成戦略とは作成を選びますと、テーブルがない場合、自動でエンティティを見て生成してくれます。

ドロップして作成の場合、新規データが作られるたびにテーブルを初期化します。

image007

以上でJavaEEとDB接続は終了です。

Linuxで動かすときはこれをコンソールからやることになりますね。

 

-Database, Java
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Javaのstreamまとめ

以前にもちょっと扱ったJavaのStreamに関してまとめ Contents1 過去のリンク2 ソース3 注意事項4 参考リンク 過去のリンク MapのStream http://skill-up-e …

no image

型パラメータに関して

Javaでの型パラメータについて書きたいと思います。 Contents1 基本の型パラメータ2 型パラメータの制限(ある型を継承した場合) 基本の型パラメータ Sample.java [crayon- …

no image

Seleniumでの画面テスト

普段テストはJunitで単体テストを書いていますが、画面からのテストなどは当然チェックできません。 フレームワークだとどうしても内部構造がわからず画面から直接うごかして確認しなくてはいけないようなケー …

no image

サブクエリ 応用編

本日も引き続きサブクエリです。 前回とちょっと近いですが、下記のような歯抜けのテーブル(sales2)があるとします。 year | sale ——+—&#8212 …

no image

RedmineAPI活用法

自社ではRedmineで基本的にタスク管理をしておりまして、チケット作成に手当がついたりします。 Redmine単体でもいろいろな機能があるのですが、 今月の作成したチケットと完了したチケットを手当と …