Master -
Yucchi
Since - 2012/05/05
Java Persistence API で遊ぶ - 1 -
現在開発中のNetBeans6.0 Beta2を使用してJava Persistence API で遊んでみます。
データベースにはMySQLを使用し、女性タレントのプロフィールを利用してみます。
開発環境は
OS Windows Vista Ultimate 64bit
JDK6u3
NetBeans IDE 6.0 Beta2
MySQL 5.0.45 (Community 版)
です。
[ File ] → [ New Project... ] で新規プロジェクトを作ります。
新規プロジェクトウィンドウが表示されます。
[ Java ] → [ Java Application ] を選択し [ Next > ] ボタンを押します。
次のステップでは下記のようにプロジェクト名、ロケーションなどを設定します。
そして、[ Finish ] ボタンを押します。
次にデータベースからエンティティクラスを作成します。
おっと、いけない(^^;
データベースを操作できるようにJDBCドライバの設定をしなくちゃね!
それではデータベースが使えるようにJDBCドライバの設定をします。
NetBeans6.0Beta2からMySQLのJDBCドライバが標準搭載されましたのでそれを使います。
TalentIntelligence プロジェクトを右クリックし、[ Properties ] を選択します。
プロジェクトのプロパティウィンドウが出ますので [ Categories: ] から Libraries を選択します。
画面右にある [ Add JAR/Folder ] ボタンをクリックします。
ファイルチューザが表示されますので MySQL のJDBCドライバを選択します。
何も問題がなければ NetBeans6.0 に標準装備のものを指定します。
下の Build Projects on Classpath のチェックが入ってることを確認し、[ OK ] ボタンをクリックします。
それではデータベースからエンティティクラスを作成しましょう。
TalentIntelligence プロジェクトを右クリックし、[ New ] → [ Entity Classes from Database... ] を選択します。
New Entity Classes from Database 画面が表示されます。
Database Connection のラジオボタンが ON になってることを確認し、
ドロップダウンリストから [ New Database Connection... ] を選択します。
New Database Connection 設定ウィンドウが表示されます。
Name: から MySQL(Connection/J driver) を選択します。
必要事項を記入し [ OK ] ボタンをクリックします。
New Entity Classes from Database 画面に戻ります。
Database Connection: に先ほど設定したMySQLデータベースが確認できます。
そして [ Available Tables: ] から female_talent テーブルを選択し右画面の Selected Tables: に追加 します。
[ Add > ] ボタンで追加できます。
追加されたのが確認できたら [Next > ] ボタンをクリックします。
Entity クラスの設定画面が表示されます。
必要事項を記入して Generate Named Query Annotations for Persistent Fields のチェックを ON にしてください。
そして [ Create Persistence Unit... ] ボタンをクリックします。
Create Persistence Unit... ウィンドウがポップアップされますので
必要であれば Persistence Unit Name: を好みの名前に変更します。
その他設定項目の必要に応じて変更します。
今回は Persistence Unit Name だけ変更します。
[ Create ] ボタンをクリックします。
Package: にパッケージを指定して [ Finish ] ボタンをクリックします。
エンティティクラスと Persistence Unit が完成しました。
FemaleTalent.java をダブルクリックして自動生成されたソースを確認してみましょう。
ちゃんと NamedQuery メソッド用のアノテーションもできてます。
もちろんアクセッサメソッドも!
非常に便利な機能ですね。
Persistence Unit も見てみましょう。
ちゃんとできてますね。
詳細は XML ボタンによって切り替えてみることができます。
もちろん、編集もできます。
今回は特にその必要はないでしょう。
次は Java Persistenc API を利用して talentdb の female_talent テーブルを操作するクラスを作ります。
[ Source Package ] → [ New ] → [ Java Class ] を選択します。
Class Name: を Controller とし、Package: を systems.nano.yucchi.intelligenceController とします。
[ Finish ] ボタンをクリックします。
作成された Controller クラスを下記のように編集します。
これでとりあえずプログラムは完成です。
ちなみに talentdb の female_talent テーブルは下図のようになってます。
作成したプログラムでは Java Persistence API を利用してこのテーブルの情報を取り込んでます。
データの取り方も上のプログラムのコードを見て解るように3種類試してみました。
実在するタレントの情報を扱っていますがネット上で拾ったデータなので間違ってるかもしれません。
それでは実行してみます。
TalentIntelligence プロジェクトを右クリックし、[ Run ] をクリックします。
ちゃんと動きました。(^^)
今回は単純に標準出力に表示させるだけだったので簡単でしたね。
NetBeans6.0Beta2 によるデータベースからエンティティクラスを自動生成する機能は本当に優れものです。
機械的な作業をしなくてすみます。(^^)
今回一番大変だったのは talentdb の female_talent テーブル用のデータ収集でした(爆