CRUDの基本をマスターする (1/5)
作成:2015-08-01 08:35
更新:2015-08-01 08:35
更新:2015-08-01 08:35
■Queryによるデータの一覧取得
データベース操作の基本は「CRUD」と呼ばれます。前回、ダミーのデータをいくつか保存して、データの一覧を表示する簡単なサンプルを作成しました。
(※参照 http://libro.tuyano.com/index3?id=7626003&page=5)
これで、「Create」と「Read」の基本は既に作成していたわけですね。では、どうやっていたのか見てみましょう。
まずは、「データ一覧の取得」です。これには「Query」というクラスを利用しています。
これは、「Query」というクラスのインスタンスを作成し、そのメソッドを呼び出して全エンティティのリストを取り出します。Queryというのは、SQLのクエリー文の簡易版のような文を使ってデータベースにアクセスするためのものです。
インスタンス作成は、newではなく、「createQuery」というメソッドを利用します。引数には「from SampleEntity」とテキストが用意されていますね? これが、SampleEntityのエンティティをすべて取得することを示す記述なのです。
こうして作成したQueryの「getResultList」を呼び出すと、取得したエンティティをリストにまとめたものが得られます。後は、そこから順にエンティティを取り出して処理していけばいい、というわけです。
createQueryの引数でどういうテキストを指定すればどんな結果が得られるか?というのが一番の問題ですね。とりあえずここでは、「from エンティティ」という形で書けば、そのエンティティの一覧が得られる、ということだけ覚えておきましょう。
(※参照 http://libro.tuyano.com/index3?id=7626003&page=5)
これで、「Create」と「Read」の基本は既に作成していたわけですね。では、どうやっていたのか見てみましょう。
まずは、「データ一覧の取得」です。これには「Query」というクラスを利用しています。
Query query = manager.createQuery("from SampleEntity");
これは、「Query」というクラスのインスタンスを作成し、そのメソッドを呼び出して全エンティティのリストを取り出します。Queryというのは、SQLのクエリー文の簡易版のような文を使ってデータベースにアクセスするためのものです。
インスタンス作成は、newではなく、「createQuery」というメソッドを利用します。引数には「from SampleEntity」とテキストが用意されていますね? これが、SampleEntityのエンティティをすべて取得することを示す記述なのです。
List list = query.getResultList();
こうして作成したQueryの「getResultList」を呼び出すと、取得したエンティティをリストにまとめたものが得られます。後は、そこから順にエンティティを取り出して処理していけばいい、というわけです。
createQueryの引数でどういうテキストを指定すればどんな結果が得られるか?というのが一番の問題ですね。とりあえずここでは、「from エンティティ」という形で書けば、そのエンティティの一覧が得られる、ということだけ覚えておきましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
package com.tuyano.libro.db; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Query; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class App { public static void main(String[] args) { ApplicationContext app = new AnnotationConfigApplicationContext(SampleEntityConfig.class); EntityManagerFactory factory = app.getBean(EntityManagerFactory.class); EntityManager manager = factory.createEntityManager(); makeDummyData(manager); // get list Query query = manager.createQuery("from SampleEntity"); List list = query.getResultList(); printList(list); System.out.println("...ok."); } public static void makeDummyData(EntityManager manager) { 略 } public static void printList(List list) { 略 } }
※関連コンテンツ
「初心者のためのSpring Framework入門」に戻る