MongoDBを利用する (6/6)
作成:2015-05-09 09:23
更新:2015-05-09 09:23
更新:2015-05-09 09:23
■MongoDBにサンプルを保存するには?
データベースを利用する処理を作成する場合、とりあえずいくつかダミーのデータを用意しておくのが一般的です。これは、MongoDBに限らず、データベース開発を行う際に必ず必要となる作業でしょう。
Spring Bootを利用する場合、アプリケーションクラスに処理を追加しておくことで、比較的簡単にこうした下処理を用意できるようになっています。
下に簡単なサンプルを挙げておきましょう。Appクラスを修正してから実行すると、データベースに自動的に3つのMongoDataエンティティが追加された状態でアプリが起動します。
ここでは、Appクラスに「CommandLineRunner」というインターフェイスがimplementsされています。これは、@SpringBootApplicationを指定して実行されるアプリケーションクラスが起動されたとき、起動後に呼び出されるコールバックを用意するものです。Appクラスに追加されている、
ここでは、2つの処理を用意してあります。まず最初に行っているのは、エンティティを全て削除する処理です。これは「deleteAll」メソッドを使います。
このCommandLineRunnerを使った手法は、データベースに限らず、さまざまな機能の初期化処理、下準備に利用できますので、ここで覚えておくとよいでしょう。
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を使った手法は、データベースに限らず、さまざまな機能の初期化処理、下準備に利用できますので、ここで覚えておくとよいでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
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プログラミング入門」に戻る