JPAの基本を覚える (6/7)
作成:2017-10-28 09:18
更新:2017-10-28 09:18
更新:2017-10-28 09:18
■エンティティの取得
続いて、データベースからレコードをエンティティとして取り出す処理です。これは、doGetで行なっています。
1. エンティマネージャの用意
2. Queryの作成
Queryインスタンスは、EntityManagerクラスの「createQuery」メソッドを使って作成します。引数には、SQLクエリー文(のようなもの。正確にはJPQLと呼ばれるものです)のテキストを指定します。
3. リストの取得
――これで、データベースへのエンティティの保存、データベースからエンティティの取得、といったことができるようになりました。ここでは、取り出したListは、そのままリクエストにlistという名前で保存してあります。そしてindex.jspにフォワードしてそこで具体的な表示を行うようにします。
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); }
※関連コンテンツ
「初心者のためのJava Persistence API入門」に戻る