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

SQL問題

今までやったSQL問題などのまとめ。定期的にやる予定です・・ 自分用なのでテーブルデータとかあったりなかったりいい加減です(汗) SQLドリル 問題1 nameとageで構成されたテーブルがあるとして …

no image

mavenでのjarファイル作成

ここ半年Javaを触っていますが、9割以上がWEBアプリでバッチ系のものを作る機会から外れていました。 今回バッチを作っており、IDEでは動くのにいざコンソールで動かそうと思ったら動かないということが …

no image

Mapからインスタンス変数、インスタンス変数からMapへ

Javaで変数を引き回すときにMapからインスタンス、インスタンスからMap、あるインスタンスから別のインスタンスに変数を差し替える作業って結構多いと思います。 これって普通にやるとMapのget,p …

no image

Listの簡便な書き方

このエントリーともかぶりますが、リストにクラスを代入するときの簡便な書き方の紹介です。 名前と年齢のプロパティをもつ簡単なクラス(Hoge)をListに格納しようとします。 普通に書くと [crayo …

no image

Seleniumの値基本動作まとめ

以前、「Seleniumでの画面テスト」というエントリーでのテストフレームワークとして、Seleniumを紹介しました。 上記のエントリーですが、単なるインストールと基本的な起動、簡単な文字入力ぐらい …