かずきのBlog
C#やJavaやRubyとメモ書き

目次

Blog 利用状況
  • 投稿数 - 426
  • 記事 - 1
  • コメント - 461
  • トラックバック - 112
ニュース
  • 思い出は、いっぱい。
コメント
プログラマ的自己紹介
  • C#とRubyを趣味で。Javaを仕事で使ってやってます。 WPFをコツコツ勉強中。 IDE大好き。Visual Studio, Eclipse, NetBeansを使用中
お気に入りのツール/IDE
  • Visual Studio 2008 std
  • Eclipse
  • NetBeans6.0以降
  • 自作のツール
プロフィール
  • 大田 一希
  • 1981年1月30日産まれ
  • AB型
  • 左利き
経歴
  • 1993年 海田中学校 入学
  • 1996年 広島県立安芸南高等学校 入学
  • 1999年 某大学 環境情報学科 入学
  • 2003年 某大学 大学院 環境学研究科 入学
  • 2005年 就職して上京
  • 今に至る
アクセサリ
  • あわせて読みたい
  • ログ解析ネット証券

書庫

日記カテゴリ

 

前回:http://blogs.wankuma.com/kazuki/archive/2008/05/28/139835.aspx

前回、簡単なステートレスなSessionビーンを作ってお手軽感を出してみた。
今回は、この間入門したJPAと組み合わせて使ってみようと思う。

ということで、この間のEJB3Edu-ejbプロジェクトにステートレスなSessionビーンを追加する。
名前は、CustomerManagerにしておく。こいつからDBへアクセスする予定だ。

次に、持続性ユニットを追加する。
samplePUという名前で、NetBeansに付属のJavaDBのsampleデータベースへの接続を追加した。
次に、このDBのテーブルを全部エンテティとして定義する。

新規作成から、データベースからのエンテティクラスを選ぶ。
データソースとして、さっき作ったsamplePUを作る際に作ったデータソースを指定すると、テーブルの情報を読み取ってくれる。
後はすべて選んで完了を押せばOK。

お手軽。下のように、クラスがばっちり作られる。

image

さっき作ったCustomerManagerに下のようなメソッドを定義する。
とりあえず、全件取得!

package com.wankuma.kazuki.ejb;

import com.wankuma.kazuki.jpa.Customer;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class CustomerManagerBean implements CustomerManagerLocal {
    private EntityManager em;
    @PersistenceContext
    public void setEm(EntityManager em) {
        this.em = em;
    }
    
    @SuppressWarnings("unchecked")
    public Customer[] getAllCustomer() {
        List<Customer> customers = em.createQuery("select c from Customer c").getResultList();
        return customers.toArray(new Customer[customers.size()]);
    }
}

引き続いてWebのページを新たに起こす。
もちろんEJB3Edu-warのほうに。

CustomersPageという名前でVisual Web JSFのページを作る。

    private CustomerManagerLocal customerManager;

    public CustomerManagerLocal getCustomerManager() {
        return customerManager;
    }

    @EJB
    public void setCustomerManager(CustomerManagerLocal customerManager) {
        this.customerManager = customerManager;
    }

ページに上のようなプロパティを追加して、セッションビーンが使えるようにする。
そして、表に表示するためのデータを持つプロパティも定義する。

    private Customer[] customers;

    public Customer[] getCustomers() {
        return customers;
    }

    public void setCustomers(Customer[] customers) {
        this.customers = customers;
    }

後は、prerenderのときにデータを設定してみる。

    @Override
    public void prerender() {
        if (customers == null) {
            customers = customerManager.getAllCustomer();
        }
    }

後は、普通に表にデータをバインドして適当な列を表示するように設定して完了。
↓のような感じに表示される。
image

ここまでお手軽街道まっしぐら。

投稿日時 : 2008年5月30日 0:04
コメント
No comments posted yet.
タイトル  
名前  
Url
コメント