前回「LombozプラグインでEJB開発を簡素化」では、Eclipse上でLombozプラグインを利用したStateless Session Beanの作成方法を解説しました。今回は、Lombozプラグインを利用したEntity Beanの作成方法について解説します。前回のソフトウェア環境に加え、データベースとデータベース接続用のドライバを加えた以下のソフトウェア環境で動作確認を行っています。
ソフトウェア | バージョン |
---|---|
OS | Windows XP |
JDK | 1.4.2 |
Eclipse | 2.1.1 |
国際化プラグイン | 2.1.x Translations |
Lombozプラグイン | 2.1_1 |
JBoss | 3.0.8 |
MySQL | 4.0.14b |
Connector/J | 3.0.8 |
前回に作成した“メーリングリスト管理Stateless Session Bean”は、メンバーの名前を取得する際、メールアドレスの「@」から前の部分を返す、という簡易な処理を行っていました。今回はこれを、メンバーの名前をデータベース内に格納された名簿(メールアドレス、名前を持つ)からEntity Bean経由で取得するという処理に変更します。
アプリケーションサーバは前回に引き続きJBossを使用し、データベースはMySQLを使用します。変更は以下の手順で行います。
(1) データベースの構築
(2) JBossのデータソース設定
(3) Entity Beanの作成
(4) Session Beanの修正
(5) デプロイと動作確認
なお、本稿でのEclipseのメニュー表記は、前回の記事同様にhttp://download.eclipse.org/downloads/index.phpから入手できる2.1.x用の国際化プラグイン(ファイル名 eclipse2.1.1-SDK-win-LanguagePackFeature.zip)を適用したものになりますのでご注意ください。
前回の記事からLombozがアップデートされました。現在、Lomboz 2.1.1というバージョンがリリースされています。以前のバージョンとの主な違いとして、以下が挙げられます。
前回の記事では、JBoss 3.2.1用の定義ファイルを紹介しましたが、これはLomboz 2.1.1に添付されるようになりました。Lomboz添付のものを使用した方がよいでしょう。
なお、Lombozのサイト(http://www.objectlearn.com/index.html)からは以前のバージョン(2.1_02)がダウンロードできなくなっています。そのため前回の記事の内容に関して、バージョンアップによる影響がないことを確認したうえで、以降の記事ではLomboz 2.1.1を使用して動作確認を行いました。
まずはデータベースの構築から行います。MySQLのインストールを行い、必要なデータベース、ユーザー、テーブルの作成と、データの挿入を行います。
MySQLは軽快な動作で知られるオープンソースのRDBMSです。SolarisやHP-UXなどのUNIX、Linux、Windowsなど多くのプラットフォーム上で動作します。MySQLの詳細については、@IT Linux Square「快速MySQLでデータベースアプリ!」を参考にしてください。
今回は、Eclipseを起動しているWindows環境上でMySQLを実行します。MySQLは、以下のURLからダウンロードすることができます。
今回はリリースバージョン4.0.xの最新版、4.0.14のWindows版であるmysql-4.0.14b-win.zipをダウンロードしました。ダウンロードしたファイルを展開してできたディレクトリ内のSETUP.EXEを実行します。インストーラが起動しますので、ウィザードに従ってインストールしてください。
今回はデフォルトの設定で、C:\mysqlディレクトリにMySQLをインストールしました。また、日本語を正しく使用するために、C:\windows\配下にインストールされる設定ファイル「my.ini」を修正します。「my.ini」ファイル内の[mysqld]グループ、[client]グループに、以下を追加してください。
default-character-set=sjis
[client]グループがない場合には作成してください。以下に、「my.ini」ファイルの例を示します。
[mysqld] basedir=C:/mysql datadir=C:/mysql/data default-character-set=sjis [WinMySQLadmin] Server=C:/mysql/bin/mysqld-nt.exe user=admin password=admin [client] default-character-set=sjis
メーリングリストを管理するデータベース「mldb」を新たに作成します。データベースの作成には、mysqladminのcreateコマンドを使用します。MySQLインストールディレクトリ\binの下で、以下のコマンドを実行してください。
mysqladmin create mldb
データベースが作成できたことを確認するには、mysqlshowコマンドを使用してください。
次に、MySQLに接続するためのmailAdminユーザーを作成します。
(1)以下のコマンドを実行し、MySQLにrootでログインします。
mysql -u root
(2)以下の文を実行し、mldbに関する全権限付きユーザーを作成します
GRANT ALL ON mldb.* TO mailAdmin@localhost IDENTIFIED BY 'mailAdmin'; GRANT ALL ON mldb.* TO mailAdmin@"%" IDENTIFIED BY 'mailAdmin';
最初の文では自端末からのアクセス権限、次の文ではほかの端末からのアクセス権限を付与しています。作成したユーザーを確認するには、以下のコマンドを使用してください。
select user, host, password from mysql.user;
表示されるパスワードは暗号化されていますので、ご注意ください。
メールアドレスと名前を管理するためのテーブルを作成します。
(1)mailAdminユーザーでログインします
mysql -u mailAdmin -pmailAdmin mldb
(2)テーブルを作成するためのDDLを実行します
create table mlmember( email varchar(100), name varchar(100), primary key(email), );
続いて、データを挿入します。以下のinsert文で行います。
insert into mlmember values("taro@nttdata.co.jp", "山田太郎"); insert into mlmember values("hanako@nttdata.co.jp", "佐藤花子");
JBoss上で動作するEJBからデータベースにアクセスするため、JBossにJDBCドライバのインストールとデータソースの設定を行います。
JBossからデータベースに接続するには、そのデータベースに合ったJDBCドライバが必要となります。MySQLのJDBCドライバであるConnector/Jは、以下のURLから入手することができます。
今回は安定版のバージョン3.0.8を使用します。上記のURLからmysql-connector-java-3.0.8-stable.zipを入手し、展開したディレクトリ直下のmysql-connector-java-3.0.8-stable-bin.jarを、JBossインストールディレクトリ\server\default\libにコピーしてください。
前回の記事ではJBossをc:\jboss-3.0.8にインストールしていますので、今回はc:\jboss-3.0.8\server\default\libにコピーしました。
MySQL用の設定ファイルのサンプルをコピーして編集し、データソースを設定します。
(1)サンプルのコピー
c:\jboss-3.0.8\docs\examples\jca\mysql-service.xmlをc:\jboss-3.0.8\server\default\deployにコピーします。
(2)サンプルファイルの修正
コピーしたファイルを修正します。
<config-property name="ConnectionURL" type="java.lang.String"> jdbc:mysql://localhost:3306/mldb?useUnicode= true&characterEncoding=Windows-31J </config-property>
<config-property name="DriverClass" type="java.lang.String">com.mysql.jdbc.Driver</config-property>
<config-property name="UserName" type="java.lang.String">mailAdmin</config-property> <config-property name="Password" type="java.lang.String">mailAdmin</config-property>
Copyright © ITmedia, Inc. All Rights Reserved.