出典:プレーンテキスト家のブログ
住所:https://blog.yoodb.com/yoodb/article/detail/1578
MongoDBは、オープンソースのNoSQLの文書データベースです。それはBSON JSONと同様のデータ構造、様々な格納することができ、複雑なデータ型を格納することができます。
MongoDBのを使って春ブーツ春ブート・スターター・データ・MongoDBの「スターターPOM」を含む多くの利点を提供します。春ブーツのMongoDBデータベースの統合について学ぶために、この論文では、二つの方法で直接MongoRepository MongoTemplateクラスを達成するためのMongoDBデータベース、すなわち、新しいインターフェースとインターフェースクラスを読み書きするために、異なる方法で実装すること。
最大の特徴は、その構文は、オブジェクト指向の方法に似ている、非常に強力ですが、あなたはほとんどの機能を実現することができMongoDBのクエリ言語をサポートしている単一テーブルのクエリリレーショナルデータベースに似ていますが、また、データのインデックス作成のためにサポートしています。
MongoDBのスタートをダウンロードしてインストール
1、MongoDBのダウンロード https://www.mongodb.com/download-center/community?jmp=docs
図参考に示すように:
2、ダウンロードmongodb-win32-x86_64-2012plus-4.2.5.zipファイルのファイルディレクトリ解凍後の圧縮パッケージには、例えば、次のように:
3、サービスはMongoDBの起動スイッチコマンドcmdディレクトリを使用して)1を、次のコマンドを実行します。
CMD E:\ツール\ MongoDBの-win32の-x86_64-2012plus-4.2.5 \ MongoDBの-win32の-x86_64-2012plus-4.2.5 \ binに
2)MongoDBのサービスを開始し、次のコマンドを実行します。
mongod --dbpath E:\ソフトウェア\ MongoDBの\データ
4、状況を見始めます
ブラウザでhttpを入力してください:// localhostを:27017(27017は、MongoDBのポート番号です)ショーかどうかを確認するために:
接続ポートが占有されている場合は見ることができ、それ以外の場合は失敗し、成功しています。
コンフィギュレーション・ファイルとエンティティクラス
1、pom.xmlファイル
pom.xml依存のファイルに春ブート・スターター・データのMongoDB組み込まMongoDBのサポートへのアクセスを追加し、その実装は次のように、ばねデータのMongoDBは、設定情報があるによって異なります。
<依存性> <のgroupId> org.springframework.boot </のgroupId> <たartifactId>ばねブートスタータデータMongoDBの</たartifactId> </依存>
次のようにプロジェクトのケースpom.xmlファイルの構成情報は次のとおりです。
<?xmlのバージョン= "1.0"エンコード= "UTF-8"> <プロジェクトのxmlns = "http://maven.apache.org/POM/4.0.0"のxmlns:XSI = "のhttp://www.w3 .ORG / 2001 / XMLスキーマ・インスタンス」 のxsi:のschemaLocation = "http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion> 4.0.0 </ modelVersion> <親> <のgroupId> org.springframework.boot </のgroupId> <たartifactId>ばねブートスタータ親</たartifactId> <バージョン> 2.2.5.RELEASE </バージョン> <relativePath /> </親> <groupIdを> com.yoodb.study.demo06 </ groupIdを> <たartifactId> springboot-研究-demo06 </たartifactId> <バージョン>0.0.1-SNAPSHOT </バージョン> <パッケージ>戦争</梱包> <名前> springboot-研究-demo06 </名前> <説明>春ブーツ用デモプロジェクト</記述> <プロパティ> <のjava.version> 1.8 </java.version> </プロパティ> <依存性> <依存> <groupIdを> org.springframework.boot </ groupIdを> <たartifactId>ばねブートスタータデータMongoDBの</たartifactId> </依存> <依存性> <のgroupId> org.springframework.boot </のgroupId> <たartifactId>ばねブートスタータウェブ</たartifactId> </依存> <依存性> <のgroupId> org.springframework.boot </のgroupId> <たartifactId>ばねブートスタータTomcatの</たartifactId> <スコープ> </スコープ>提供 </依存> <依存性> <のgroupId> org.springframework.boot </のgroupId> <たartifactId>ばねブートスタータ試験</たartifactId> <スコープ>テスト</スコープ> <除外> <除外> <のgroupId> org.junit.vintage </ groupId> <たartifactId> JUnitのヴィンテージ・エンジン</たartifactId> </除外> </除外> </依存関係> </依存関係> <ビルド> <プラグイン> <プラグイン> <groupIdを> org.springframework.boot </ groupIdを> <たartifactId>春・ブートのmaven-pluginの</たartifactId> </プラグイン> </プラグイン> </ビルド> </プロジェクト>
図2に示すように、データソースの構成
次のようにapplication.propertiesファイルの増加は、読み取ります。
#MongoDBの配置 spring.data.mongodb.uri =のMongoDB:// localhostを:27017 spring.data.mongodb.database =選択
3、書き込みBootUserエンティティ・オブジェクト
クラスファイル属性値フィールドに対応BootUserのMongoDBデータベーステーブル、固有のコードは次のように
パッケージcom.yoodb.study.demo06.entity。 インポートしたjava.io.Serializable; パブリッククラスBootUser実装Serializableを{ プライベート文字列ID; プライベート文字列名; プライベート文字列の詳細; パブリック文字列のgetId(){ 戻りID。 } 公共ボイドSETID(文字列ID){ this.id = ID。 } パブリック文字列のgetName(){ 戻り名。 } 公共ボイドのsetName(文字列名){ this.name =名。 } パブリック文字列getDetail(){ 戻り詳細; } 公共ボイドsetDetail(文字列詳細){ this.detail =ディテール。 } }
MongoDBは読み書き
モード:MongoRepositoryインタフェース1は、インターフェース・クラス・ファイルが定義UserRepository次のように新しいインタフェースと継承MongoRepositoryリポジトリインターフェース、特定コード:
パッケージcom.yoodb.study.demo06.repository。 輸入com.yoodb.study.demo06.entity.BootUser; 輸入org.springframework.data.mongodb.repository.MongoRepository。 輸入org.springframework.stereotype.Service。 @Service パブリックインターフェイスUserRepositoryはMongoRepository <BootUser、文字列> {延び (BootUserユーザ)保存公共BootUser。 }
注:唯一のインタフェース名を記述する必要があるデータ、および対応するパラメータの一部はフォーマットに従うことができるかどうかのSpring Frameworkのブートクエリ内のインターフェイスの継承MongoRepositoryクラスの定義。
図2に示すように、インタフェースクラスファイルUserServiceの定義以下のように、特定のコードを:
パッケージcom.yoodb.study.demo06.service。 輸入com.yoodb.study.demo06.entity.BootUser; 輸入org.springframework.stereotype.Repository。 @Repository パブリックインターフェースUserServiceの{ (BootUserユーザ)保存公共ボイド。 }
3、新しいクラスファイルUserServiceImpl UserServiceのインターフェースクラスを実現するために、次のように、特定のコードを:
パッケージcom.yoodb.study.demo06.service.impl。 輸入com.yoodb.study.demo06.entity.BootUser; 輸入com.yoodb.study.demo06.repository.UserRepository。 輸入com.yoodb.study.demo06.service.UserService。 輸入org.springframework.beans.factory.annotation.Autowired; 輸入org.springframework.stereotype.Service。 @Service パブリッククラスUserServiceImpl実装UserServiceの{ @Autowired プライベートUserRepository userRepository。 (BootUserユーザー){保存ます。public void userRepository.save(ユーザー); } }
4、新しいクラスファイルHelloWorldController、具体的なコードは次のように:
パッケージcom.yoodb.study.demo06。 輸入com.yoodb.study.demo06.entity.BootUser; 輸入com.yoodb.study.demo06.service.UserService。 輸入org.springframework.beans.factory.annotation.Autowired; 輸入org.springframework.data.mongodb.core.MongoTemplate; 輸入org.springframework.data.mongodb.core.query.Criteria; 輸入org.springframework.data.mongodb.core.query.Query; 輸入org.springframework.web.bind.annotation.RequestMapping。 輸入org.springframework.web.bind.annotation.RestController; @RestController パブリッククラスHelloWorldController { @Autowired プライベートUserServiceのUserServiceのを。 ( "セーブ")@RequestMapping {)(保存公共ブール //挿入データ BootUserユーザー=新しい新BootUser(); user.setId( "003"); user.setName( "プレーンテキスト家のブログ"); user.setDetail( "003ウォッチ" Javaは一緒に、「マイクロチャネルパブリック数を特色にしました進歩「);! mongotemplate.save(ユーザー); trueに復帰; } }
5、プロジェクトの開始の訪問に次のアドレスを:
http:// localhost:8080 /保存
次の結果が返されました:
真
示されるようにMongoDBは、データをデータベースに格納されています。
第二の方法:MongoTemplateを使用して
1は、春ブーツ自動的に注入されたmongotemplateは次のように、直接HelloWorldController新しいクラスファイルの前に、この比較的単純な方法は、コードを追加します。
パッケージcom.yoodb.study.demo06。 輸入com.yoodb.study.demo06.entity.BootUser; 輸入com.yoodb.study.demo06.service.UserService。 輸入org.springframework.beans.factory.annotation.Autowired; 輸入org.springframework.data.mongodb.core.MongoTemplate; 輸入org.springframework.data.mongodb.core.query.Criteria; 輸入org.springframework.data.mongodb.core.query.Query; 輸入org.springframework.web.bind.annotation.RequestMapping。 輸入org.springframework.web.bind.annotation.RestController; @RestController パブリッククラスHelloWorldController { @Autowired プライベートUserServiceのUserServiceのを。 @Autowired プライベートMongoTemplateのmongotemplate。 ( "保存")@RequestMapping 公共ブール保存(){ //挿入データ BootUser新しい新しいBootUser =ユーザー(); user.setId( "003"); user.setName( "プレーンテキストブログホーム"); user.setDetail( 「003は、当該の」Java「は、マイクロチャネルパブリック番号は、一緒に進行!」特集); mongotemplate.save(ユーザ); 真への復帰; } @ RequestMapping(「SELECT」) 公衆ストリング選択(文字列前記ID上記){ //クエリデータ クエリのクエリ新しい新しいクエリ=(); query.addCriteria(Criteria.where( "ID")は、(ID)である。); 文字列の詳細mongotemplate.findOne =(クエリ、BootUser.class).getDetail(); 戻り値の詳細; } }
2、プロジェクトを開始
次のアドレスにアクセスしてください:
http:// localhost:8080 /選択のid = 001?
次の結果が返されました:
001ウォッチは、マイクロチャネルのパブリック番号を「Javaが特色」、一緒に進行します!
この記事の記事のソースプロジェクト(springboot-研究-demo06)住所:
https://github.com/yoodb/springboot
春のブートに関するこの二つの方法は、MongoDBのを読んで、仕上げの書き込み非リレーショナルデータベースの統合、およびそれに続く春の雲シリーズは、更新を続け、後で参照を学ぶために簡単にコレクションを閲覧することができます。ここでは、下記のメッセージを残してくださいどのようなご質問、時間を持って、あなたはそれを試してみることができます。