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

Fileのアップロード

業務でCSVのアップロードを行っていますが、ファイルになりますと当然文字列ではなく、バイナリ形式のデータが必要になります。 アップロード自体の処理を書いていなかったので、その扱い方についてちょっと書い …

no image

開発環境と本番での設定ファイル変更

開発と本番で設定ファイル自体(web.xmlなど)はわけると思うのですが、以前はわからず、開発のものと本番のものを手動でわけていました。 Javaでどうやってやるかを調べたところ、pomにかなり便利な …

no image

アンチパターン トランザクションスコープ+大量データのリアルタイム集計+接続が詰まる

本日は主にインフラの設計的なことに関して。 Contents1 トランザクションスコープの設定1.1 デメリット1.2 対策2 大量データのリアルタイム集計2.1 デメリット2.2 対策3 詰まると接 …

no image

第二、第三の正規化&ER図&Check制約

前回第一正規化を話したので、第二、第三に進んでいきます。 Contents1 第二正規化とは?2 第三正規化とは?3 正規化のメリット4 ER図5 本日のSQLネタ Check制約 第二正規化とは? …

no image

フィールド以外のプロパティをエンティティに持たせる

JPAでは基本的に1テーブル、1クラスです。 このためプロパティは必然的にテーブルのフィールドに対応しています。 ただ、必ずしもプロパティだけでなく、臨時で持たせておきたい、プロパティがあったりします …