libro
www.tuyano.com
初心者のためのJava Persistence API入門

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

作成:2017-10-28 09:18
更新:2017-10-28 09:18

■エンティティの取得

続いて、データベースからレコードをエンティティとして取り出す処理です。これは、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にフォワードしてそこで具体的な表示を行うようにします。

※プログラムリストが表示されない場合

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);
}
※関連コンテンツ

「初心者のためのJava Persistence API入門」に戻る