libro
www.tuyano.com
初心者のためのSpring Framework入門

Spring Data JPAの利用 (6/7)

作成:2015-07-25 08:37
更新:2015-07-25 08:37

■データベースを利用してみる

では、実際にデータベースを利用してみることにしましょう。com.tuyano.libro.dbパッケージに「App」クラスを作成し、下のリスト欄のようにソースコードを記述して下さい。

完成したら、実際にAppクラスを実行してみましょう。すると、以下のようにテキストが出力されることがわかるでしょう。

SampleEntity [id=1, name=tuyano, mail=syoda@tuyano.com]
SampleEntity [id=2, name=hanako, mail=hanako@flower]
SampleEntity [id=3, name=taro, mail=taro@yamada]
SampleEntity [id=4, name=sachiko, mail=sachico@happy]
...ok.


これは、ダミーとして用意したエンティティをデータベースから取得し表示しているのです。ここでは、ダミーデータを作成するためのmakeDummyDataメソッドと、取得したリストの内容を出力するprintListメソッドを用意しておきました。では、簡単に整理しましょう。

1. ApplicationContextの作成
ApplicationContext app = 
    new ClassPathXmlApplicationContext("dbbean.xml");
まずは、いつものようにApplicationContextインスタンスを用意します。ここでは、dbbean.xmlをファイル指定しておきます。


2. EntityManagerFactoryインスタンスの取得
EntityManagerFactory factory = app.getBean(EntityManagerFactory.class);
Bean設定ファイルに用意しておいた、エンティティマネージャファクトリーのBeanを取得します。これは、EntityManagerFactoryクラスのclass値として引数を指定しおきます。


3. EntityManagerの作成
EntityManager manager = factory.createEntityManager();
用意したEntityManagerFactoryから、EntityManagerを取得します。これはcreateEntityManagerというメソッドを呼び出すだけです。


――これで、EntityManagerが用意できました。後は、これを使って、ダミーデータを保存したり、あるいは全エンティティをリストとして取り出したりしています。

とりあえず、今回は「データベース利用の基本」ということで、肝心のEntityManagerを取り出すところまでわかればOK、としましょう。具体的なデータベースアクセスは次回に説明する予定です。

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

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.support.ClassPathXmlApplicationContext;

public class App {

    public static void main(String[] args) {
        ApplicationContext app = new ClassPathXmlApplicationContext("dbbean.xml");

        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.");
    }

    // create dummy entity data.
    public static void makeDummyData(EntityManager manager) {
        EntityTransaction transaction = manager.getTransaction();
        transaction.begin();
        manager.persist(new SampleEntity("tuyano", "syoda@tuyano.com"));
        manager.persist(new SampleEntity("hanako", "hanako@flower"));
        manager.persist(new SampleEntity("taro", "taro@yamada"));
        manager.persist(new SampleEntity("sachiko", "sachico@happy"));
        manager.flush();
        transaction.commit();
    }

    // print all entity.
    public static void printList(List list) {
        for (Object item : list) {
            System.out.println(item);
        }
    }
}

※関連コンテンツ

「初心者のためのSpring Framework入門」に戻る