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プログラミング入門」に戻る