back

JPAの基本を覚える (6/7)

■エンティティの取得

続いて、データベースからレコードをエンティティとして取り出す処理です。これは、doGetで行なっています。

1. エンティマネージャの用意
EntityManager manager = factory.createEntityManager();
エンティティの取得も、まず最初に行うのはエンティティマネージャの用意です。createEntityManagerメソッドを使って行います。

2. Queryの作成
Query query = manager.createQuery("select i from MyDataEntity i");
データベースへのアクセスはいろいろなやり方がありますが、ここでは「Query」というクラスを利用したやり方をしています。Queryというのは、その名の通り、SQLクエリーを扱うためのクラスです。

Queryインスタンスは、EntityManagerクラスの「createQuery」メソッドを使って作成します。引数には、SQLクエリー文(のようなもの。正確にはJPQLと呼ばれるものです)のテキストを指定します。

3. リストの取得
List list = query.getResultList();
Queryから、そのクエリーを実行して得られるレコードをリストとして取り出します。これは「getResultList」メソッドを使います。戻り値は、取得した1つ1つのレコードをエンティティ(ここではMyDataEntityクラスのインスタンス)として取り出し、それをListにまとめたものになります。


――これで、データベースへのエンティティの保存、データベースからエンティティの取得、といったことができるようになりました。ここでは、取り出したListは、そのままリクエストにlistという名前で保存してあります。そしてindex.jspにフォワードしてそこで具体的な表示を行うようにします。



(by. SYODA-Tuyano.)

※リストが表示されない場合

AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。

@Override
protected void doGet(HttpServletRequest request,
        HttpServletResponse response)
        throws ServletException, IOException {
    EntityManager manager = factory.createEntityManager();
    Query query = manager.createQuery("select i from MyDataEntity i");
    List list = query.getResultList();
    
    request.setAttribute("list", list);

    RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp");
    dispatcher.forward(request,response);
}



   

記事のリストに戻る



PC Site G+ mail