このチュートリアルでは、NetBeans 7でRESTful Webサービスを使用してCRUDデータベース操作を実装する方法について説明します。
約30分
RESTful WebサービスはHTTPプロトコル・メソッドを使用します。 GET、POST、DELETEなどのHTTPメソッドを作成、読取り、更新、削除(CRUD)アクションにマッピングし、実行できます。Java仕様JAX-RS(JSR 311)では、Javaを使用してRESTful Webサービスを作成するためのAPIが提供されています。 Jerseyは、JAX-RSの公式なリファレンス実装であり、 Jersey Client APIなどの独自APIを通じて追加機能を提供します。
このチュートリアルはパート2です。パート1のNetBeans 7でのRESTful Webサービスの作成:パート1では、NetBeans 7でのRESTful Webサービスの作成とテストを取り上げました。
このチュートリアルで実施する内容は、次のとおりです。
このチュートリアルを始める前に、パート1の前提条件を満たし、チュートリアルが完了していること
ここでは、PlayerClientというJavaクライアント・アプリケーションを作成し、PlayerServerアプリケーションで作成されたRESTful Webサービスを消費する方法を紹介します。
|
. |
RESTful Webサービスの作成に使用するPlayerServerアプリケーションが実行中であることを確認します。 実行中でない場合はサーバーを起動し、次の手順を実行します。 a. 「Projects」タブを開きます。 b. 「PlayerServer」プロジェクトを右クリックします。 c. 「Run」を選択します。 これによってGlassFishサーバーが起動され、アプリケーションがデプロイされます。
アプリケーションのデプロイが成功すると、ブラウザにデフォルトのjspページ(URL:http://localhost:8080/PlayerServer/)が開き、"Hello World"と表示されます。
|
|---|---|
|
. |
新しいJavaプロジェクトを作成するには、「File」→「New Project」の順に選択します。
|
|
. |
Categories列から「Java」を選択し、Projects列から「Java Application」を選択して、「Next」をクリックします。
|
|
. |
以下の手順を実行します。 a. プロジェクトの名前としてPlayerClientを指定します。 b. 「Create Main Class」の選択を解除します。 c. 「Finish」をクリックします。
|
データベースのCRUD操作を実装するには、データベースと通信するエンティティ・クラスを作成する必要があります。 ここでは、データベースを使用したエンティティ・クラスの作成方法について説明します。
|
. |
「PlayerClient 」プロジェクトを右クリックして、「New」→「Entity Classes From Database」を選択します。
|
|---|---|
|
. |
a. Database TablesウィンドウのDatabase Connectionフィールドで、ドロップダウン・リストから「jdbc:derby://localhost:1527/playerDB[john on JOHN]」を選択します。
Available TablesカテゴリにPLAYERとTEAMが表示されます。
c. 「Next」をクリックします。
|
|
. |
Entity Classesウィンドウで、パッケージ名としてplayerentitiesを入力し、「Next」をクリックします。
|
|
. |
Mappings Optionウィンドウで、デフォルト選択のままにして「Finish」をクリックします。
|
|
. |
エンティティ・クラスが作成されたことを確認します。 a. 「PlayerClient」プロジェクトを選択します。
|
ここでは、RESTful Webサービスを使用した作成操作の実装を紹介します。 RESTful Webサービスを使用して、PLAYER表に行を作成します。
|
. |
PlayerClientプロジェクトにRESTfulクライアントを作成するには、次の手順を実行します。 a. 「PlayerClient」を右クリックし、「New」→「Other」→「Web Services」→「RESTful Java Client」の順に選択します。 b. 「Next」をクリックします。
|
|---|---|
|
|
a. New Restful Java Clientウィンドウのフィールドに次の詳細情報を入力します。
c. 「PlayerServer」アプリケーションを展開します。 d. 「PlayerFacadeREST[com.playerentity.player]」を選択します。
h. 「Finish」をクリックします。
コード・エディタにCreatePlayerJerseyClient.javaが表示されます。 |
|
. |
CreatePlayerJerseyClient.javaを確認します。 a. URIとRESTfulサービスのパスを使用してWebResourceが初期化されているコードの断片を探します。
b. Webサービスのすべてのメソッド(gets、puts、deletes、posts)が含まれることを確認します。 |
|
. |
RESTful Webサービスを使用してPLAYER表に行を作成するには、CreatePlayerJerseyClient.javaに対して次の変更を実施します。 a. 次のパッケージをインポートします。 import java.util.ArrayList;
b. mainメソッドを追加します。 public static void main(String args[])throws UniformInterfaceException
|
|
. |
Projectsウィンドウで「CreatePlayerJerseyClient.java」を右クリックし、「Run File」を選択します。
|
|
. |
次の2つのうちいずれかの方法で出力を確認します。 PLAYER表の中身を確認するか、Webサービス・テスト・クライアントを生成します。 a. PLAYER表の中身を確認するには、次の手順を実行します。 1. Servicesウィンドウで、Databasesノードの下の「jdbc:derby://localhost:1527/playerDB」接続を展開します。 5. PLAYER表のデータを確認して、Playerオブジェクト"p"に対して指定した情報を持つ新しい行が作成されていることを確認します。
b. パート1で説明されているとおりに、Webサービスのテスト・クライアントを生成します。 Webサービス・クライアントのテスト用のテスト・クライアントがデプロイされたら、次の手順を実行します。 1. リソース・ノードの「com.playerentity.player」を選択します。
|
ここでは、RESTful Webサービスを使用してデータベースの取得操作を実装する方法について説明します。 RESTful Webサービスを使用してPLAYER表からすべての行を取得し、コンソールに表示します。
|
. |
PlayerClientプロジェクトにRESTfulクライアントを作成するには、次の手順を実行します。 a. 「PlayerClient」を右クリックし、「New」→「Other」→「Web Services」→「RESTful Java Client」の順に選択します。 b. 「Next」をクリックします。
|
|---|---|
|
. |
New Restful Java Clientウィンドウのフィールドに次の詳細情報を入力します。
d. 「PlayerServer」を選択します。
h. 「Finish」をクリックします。
コード・エディタにGetPlayerJerseyClient.javaが表示されます。 |
|
. |
RESTful Webサービスを使用してPLAYER表の中身を取得するには、GetPlayerJerseyClient.javaに対して次の変更を実施します。 a. 次のパッケージをインポートします。 import java.util.ArrayList;
b. mainメソッドを追加します。 public static void main(String args[])throws UniformInterfaceException
PLAYER表からレコードを取得するために使用されるfindAll_XML()メソッドを確認します。
|
|
. |
Projectsウィンドウで「GetPlayerJerseyClient.java」を右クリックして「Run File」を選択します。
|
|
. |
出力を確認します。PLAYER表の中身はコンソールに表示されています。
|
ここでは、RESTful Webサービスを使用してデータベースの更新操作を実装する方法について説明します。 RESTful Webサービスを使用して、PLAYER表内の指定された行を更新します。
|
. |
RESTful Webサービスを使用してPLAYER表内の特定の行を更新するには、次の手順を実行します。 CreatePlayerJerseyClient.javaのメイン・メソッドで次の変更を実施します。 a. mainメソッドの内容を削除します。 b. 次のコード行をmainメソッドに追加します。 CreatePlayerJerseyClient client1=new CreatePlayerJerseyClient();
上記コードは、Player表からIDが3のPlayerを取得します。 指定されたPlayer IDを持つPlayerオブジェクトを取得するには、find_XML()メソッドを使用します。 |
|---|---|
|
. |
Projectsウィンドウで「CreatePlayerJerseyClient.java」を右クリックし、メニューから「Run File」を選択します。
|
|
. |
出力を確認すると、3というIDを持つPlayerの詳細情報がコンソールに表示されています。
|
|
. |
取得したPlayerオブジェクトを更新するには、mainメソッドに次のコードを追加します。 player.setJerseynumber(100);
上記コードは、PLAYER表で、Player IDが3の行に対して次のフィールドを更新します。 JerseyNumberを100に変更し、LastSpokenWordsを"I will be retiring soon"に変更します。 PLAYER表のレコードを更新するために使用されるメソッドは、edit_XML()です。 |
|
. |
Projectsウィンドウで「CreatePlayerJerseyClient.java」を右クリックし、メニューから「Run File」を選択します。
|
|
. |
次の2つのうちいずれかの方法で出力を確認します。 PLAYER表の中身を確認するか、Webサービス・テスト・クライアントを生成します。 a. PLAYER表の中身を確認するには、次の手順を実行します。 1. Servicesウィンドウで、Databasesノードの下の「jdbc:derby://localhost:1527/playerDB」接続を展開します。 b. パート1で説明されているとおりに、Webサービスのテスト・クライアントを生成します。 Webサービス・クライアントのテスト用のテスト・クライアントがデプロイされたら、次の手順を実行します。 1. リソース・ノードの「com.playerentity.player」を選択します。 |
ここでは、RESTful Webサービスを使用してデータベースの削除操作を実装する方法について説明します。 RESTful Webサービスを使用して、PLAYER表内の指定された行を削除します。
|
. |
RESTful Webサービスを使用してPLAYER表内の指定された行を削除するには、次の手順を実行します。 GetPlayerJerseyClient.javaのメイン・メソッドで次の変更を実施します。 a. mainメソッドの内容を削除します。 b. 次のコード行をmainメソッドに追加します。 GetPlayerJerseyClient client1=new GetPlayerJerseyClient();
b. remove()メソッドを使用して、PlayerIdが3のレコードがPlayer表から削除されることを確認します。
|
|---|---|
|
. |
Projectsウィンドウで「GetPlayerJerseyClient.java」を右クリックし、メニューから「Run File」を選択します。
|
|
. |
次の2つのうちいずれかの方法で出力を確認します。 PLAYER表の中身を確認するか、Webサービス・テスト・クライアントを生成します。 a. PLAYER表の中身を確認するには、次の手順を実行します。 1. Servicesウィンドウで、Databasesノードの下の「jdbc:derby://localhost:1527/playerDB」接続を展開します。
b. パート1で説明されているとおりに、Webサービスのテスト・クライアントを生成します。 Webサービスをテストするには、次の手順を実行します。 1. リソース・ノードの「com.playerentity.player」を選択します。
|
このチュートリアルでは、RESTful WebサービスとJPAを組み合わせて使用することで、データベースのCRUD操作を簡単に実装できることを確認しました。
著者
![]()
|
Copyright © 2011, Oracle and/or its affiliates. All rights reserved |