2008年 12月 12日 金曜日
JavaFX でデータベースに簡単にアクセスできるという事実 - その1
すみません... 某雑誌のテレビ CM っぽくタイトルを書いたのですが、そんなに大したことではありません。
JavaFX は、ご存じの通り、Java との親和性がとても高く (最終的に Java バイトコードに落ちます)、Java で作ったクラス等を使うことができます。ならば、せっかくかっこいい UI を JavaFX で作れるようになったのなら、DB につなぎたいなと思ってやってみました。一からがりがり書くのはさすがに辛いので、JDBC などのハンドルは、NetBeans が作ってくれるのをそのまま使いました。何もする必要がないので、試してみるにはめちゃめちゃ楽ですね。
とりあえず、とても簡単に、テキストフィールドとボタンを作り、値 (ID) を入れてボタンをクリックすると、他のフィールドの値を出力するという簡単なアプリケーションを作ってみようと思います。
まず最初にしなくてはならないのは、DB のセットアップです。DB がないとつなぐも何もないので。NetBeans を使うので、DB はバンドルされている derby にしました。NetBeans を長く使っている人なら、一度は操作したことがあるのではと思います。チュートリアルや、いろいろな方が既にいろいろなメディアで使い方を書いていますが、まあ、最初からやってみましょう (実は、私自身、よく忘れるので、blog にメモしておきたいのです)。もし derby をインストールしていないのなら、derby がバンドルされいている NetBeans のインストーラを持っていれば、それからインストールすることが可能です。ない場合は、再度、derby がバンドルされている NetBeans のインストーラをダウンロードする必要があります。
- NetBeans の「サービス」タブを開くと、「jdbc:derby://localhost:1527/...」というのがあると思います。これらが NetBeans がデフォルトで用意してくれているスキーマです。
- まず、接続の確認をします。[APP の app] となっているスキーマを右クリックし、「接続」を選択します。

これで、APP スキーマに接続する準備が整いました。( [APP の app] を開くと、「表」の下に、デフォルトで用意されているテーブルが表示されると思います。
次に JDBC (Java アプリケーションと DB をつなぐドライバ) の設定をします。
- 「サービス」タブに「ドライバ」があるので、「Java DB (Network)」を右クリックし、「接続」を選択します。
- 「データベースの新規接続」ダイアログがあがるので、下記の値を入力し、「了解」をクリックします。
o ホスト: localhost
o ポート: default
o データベース: sample
o ユーザ名: app
o パスワード: app
- スキーマ選択では、APP (デフォルト) を選び、「了解」をクリックします。

これでドライバの設定も完了です。
- 適当な Java Application プロジェクトを作成します。「ファイル」 -> 「新規プロジェクト」で、Java アプリケーションを選択し、デフォルトのまま完了させれば OK です。
- 作成されたプロジェクトの package を右クリックし、「新規」から、「データベースからのエンティティークラス」を選択します。
- 「データベース接続」で、つなげたい DB を選択し(今回は、[APP の app])、「使用可能な表」から、「CUSTOMER」を選んで、選択した表に移動します。

- 「次へ」をクリックします。
- 「持続性ユニットがありません」という警告がでていると思うので、「持続性ユニットを作成」を選びます。
- 「持続性ユニットを作成」ダイアログで「持続性ライブラリ」を 「TopLink」に指定し、「作成」ボタンをおします。
- 「データベースからのエンティティークラス」ダイアログに戻り、「完了」ボタンをクリックします。
これで、エンティティークラスが作成されました。
- プロジェクトの package を右クリックし、「新規」から、「その他」を選択します。
- 「持続性」から、「エンティティークラスの JPA コントロールクラス」を選択し、「次へ」をクリックします。
- すべてのエンティティークラスを 「選択されているエンティティークラス」へ移動し、「次へ」をクリックします。

- 「完了」をクリックします。
これで、JPA コントローラクラスが作成されました。
- プロジェクトの「ライブラリ」を右クリックして、「ライブラリを追加」を選択します。
- 「Java DB ドライバ」を選択し、「ライブラリを追加」をクリックします。

これで準備がすべて整いました。
public static void main(String[] args) {
// TODO code application logic here
CustomerJpaController test = new CustomerJpaController();
Customer idOne = test.findCustomer(1);
System.out.println(idOne.getName());
}
ふー、書きながらやっていると、時間かかりますねー。その 2 に続きますー(JavaFX はなしかよ!)
Posted at 09:07午後 12 12, 2008 by kenji in JavaFX の素人 |