asaのブログ

プログラミングの勉強まとめ

Java JSFでCRUD処理

 JSFCRUD処理を試してみました。簡単なテストだけですが非常に勉強になります。

 

 JSF

 StrutsやSpringといったJavaフレームワークの1つです。Java Server Facesの頭文字をとっています。定義としては<h:head>などのJSF独自のタグを使用したxhtmlページのことをJSFページと呼びます。なお、JavaEE7まではJSPで記述されていましたが、JavaEE7以降JSPJSFで使わないことになっています。

 

 CRUD処理

 Create(新規登録)、Read(検索)、Update(更新)、Deleate(削除)の4つの処理の総称をCRUD処理といいます。

 

 JSFCRUD処理

 実際にCRUD処理を確認してみます。流れあるいは手順は次の通りです。

  1.  データベースの作成
  2.  エンティティクラスの作成
  3.  永続性ユニットの作成
  4.  CRUD処理の実装(セッションビーン)
  5.  バッキングビーンの作成
  6.  JSFの作成

 忘れやすいのでデータベース、エンティティ、永続性、セッション、バッキング、フェイスと順番につぶやいて覚えています。

 

 データベースの作成

 まずはデータベースを作成します。今回はMySQLを使用しています。ログインシステムを想定して、メールアドレスとパスワードを保存するuserというデータベースを作成します。

 

 データベースの作成方法については過去記事にまとめていますので下のリンクを参照してください。

 ・NetbeansとMySQLの接続(JSPページの作成) 1 - asaのブログ

 ・NetbeansとMySQLの接続(JSPページの作成) 2 - asaのブログ

 

 エンティティクラスの作成

 JavaEEではデータベースを直接処理しません。変わりにJPAを使用してデータベース処理を行います。JPAJavaのデータベース用のAPIです。またJavaEEではデータベースに保存するのはオブジェクトになります。JPAではこれをエンティティと呼びます。

 

 エンティティクラスの作成は通常のクラスに対して@Entityアノテーションをつけるだけで作成できます。注意事項は次の通りです。

  1. @Entity、@Idアノテーションをつける
  2. セッター・ゲッター、privateのフィールド変数でカプセル化
  3. 空のコンストラクタを記述

 

 CRUD処理の実装

 こうして作成したエンティティを保存、変更したりする処理はエンティティマネージャーを使用して管理します。

 データベース処理にはステートレスセッションビーンが使用されます。なのでまず@Statelsssアノテーションを記述しておく必要があります。次にエンティティマネージャーを使用するためインジェクトする必要があります。これは‘@PersistenceContextアノテーションでDIします。

 

 インジェクトが済んだら、CRUD処理を順番に実装していきます。CRUDそれぞれに対してpersist、find、merge、removeというメソッドが対応しています。エンティティマネージャーから上のメソッドを呼び出して記述します。

 

 バッキングビーンの作成

 JSFからデータを受け取って、エンティティを生成、セッションビーンに渡して、データベースに登録、またJSFに返すといった操作をするのがバッキングビーンの役割です。

 先に作ったセッションビーンをインジェクトして、そこから操作を呼び出します。

 

 JSFページの作成

 新規作成、検索、更新、削除といったボタンを作り、actionでバッキングビーンにつないでおきます。検索結果を表示する場所を適当に作成して結果を表示させます。

 

 これまでの操作を一から手打ちで行うことも可能ですが、Netbeansにはこれらを自動で行ってくれる機能があります。簡単な確認のためでしたら下のリンクを参考になります。

 

データベースからのJavaServer Faces 2.x CRUDアプリケーションの生成 - NetBeans IDEチュートリアル