libro
www.tuyano.com
初心者のためのSpring Bootプログラミング入門

MongoDBを利用する (6/6)

作成:2015-05-09 09:23
更新:2015-05-09 09:23

■MongoDBにサンプルを保存するには?

データベースを利用する処理を作成する場合、とりあえずいくつかダミーのデータを用意しておくのが一般的です。これは、MongoDBに限らず、データベース開発を行う際に必ず必要となる作業でしょう。

Spring Bootを利用する場合、アプリケーションクラスに処理を追加しておくことで、比較的簡単にこうした下処理を用意できるようになっています。

下に簡単なサンプルを挙げておきましょう。Appクラスを修正してから実行すると、データベースに自動的に3つのMongoDataエンティティが追加された状態でアプリが起動します。

ここでは、Appクラスに「CommandLineRunner」というインターフェイスがimplementsされています。これは、@SpringBootApplicationを指定して実行されるアプリケーションクラスが起動されたとき、起動後に呼び出されるコールバックを用意するものです。Appクラスに追加されている、
public void run(String... args) throws Exception {……}
このメソッドが、コールバックメソッドです。Appが起動後にこのメソッドが呼び出されるので、ここにアプリケーションの初期化処理などを用意しておけば、それらが実行された状態でアプリケーションが用意されます。


■エンティティの削除と保存

ここでは、2つの処理を用意してあります。まず最初に行っているのは、エンティティを全て削除する処理です。これは「deleteAll」メソッドを使います。
《MongoRepository》.deleteAll();
続いて、ダミーのエンティティをデータベースに保存します。これは「save」メソッドを使います。
《MongoRepository》.save( エンティティのインスタンス );
このsaveをいくつか追加してダミーエンティティを用意しておけば、それらを利用してデータベースのテストなどが行えます。

このCommandLineRunnerを使った手法は、データベースに限らず、さまざまな機能の初期化処理、下準備に利用できますので、ここで覚えておくとよいでしょう。

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

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

●プログラム・リスト●

package com.tuyano.libro.bootapp;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class App implements CommandLineRunner {

    @Autowired
    private MyMongoRepository mongoRepository;
    
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
    
    @Override
    public void run(String... args) throws Exception {
        mongoRepository.deleteAll();
        mongoRepository.save(new MongoData("helo","this is sample memo."));
        mongoRepository.save(new MongoData("check!","check sample code..."));
        mongoRepository.save(new MongoData("サンプルメモ","これはサンプルのメモです。"));
    }
}
※関連コンテンツ

「初心者のためのSpring Bootプログラミング入門」に戻る