目次
1. NoSQL の概要
1. NoSQL の概念
2. NoSQL の長所/短所
2. MongoDB データベース
1. MongoDB の概要
2. MongoDB の機能
3. SpringBoot2 との統合
1. MongoDB の基本環境
2. コアの依存関係
3. 設定ファイル
4. カプセル化されたアプリケーション インターフェイス
5. コア コード ブロック
6. テストコードブロック
ホームページ Java &#&チュートリアル SpringBoot2 で MongoDB データベースを構成する方法

SpringBoot2 で MongoDB データベースを構成する方法

May 11, 2023 pm 06:28 PM
mongodb springboot

1. NoSQL の概要

1. NoSQL の概念

NoSQL (Not Only SQL) とは「SQL だけではない」という意味です。従来のリレーショナル データベースとは異なるデータベース管理システムの総称。 NoSQL は、非常に大規模なデータの保存に使用されます。これらのタイプのデータ ストアは固定スキーマを必要とせず、冗長な操作を行わずにスケールアウトできます。

2. NoSQL の長所/短所

--优点:
高可扩展性
分布式计算
低成本
架构的灵活性,半结构化数据
没有复杂的关系
--缺点:
没有标准化
有限的查询功能(到目前为止)
数据展现不直观
ログイン後にコピー

2. MongoDB データベース

1. MongoDB の概要

MongoDB は、リレーショナル データベースと非リレーショナルデータベース データベースの中で最も機能が豊富で、非リレーショナルデータベースの中で最もリレーショナルデータベースに近い製品です。サポートされるデータ構造は非常に緩やかで、json に似た bjson 形式であるため、より複雑なデータ型を格納できます。 MongoDB の最大の特徴は、サポートされているクエリ言語が非常に強力であることです。その構文はオブジェクト指向クエリ言語に似ています。リレーショナル データベースの単一テーブル クエリと同様のほとんどの機能を実現でき、インデックス作成もサポートしています。データの。

2. MongoDB の機能

1) MongoDB は C 言語で書かれており、分散ファイル ストレージをベースにしたオープン ソース データベース システムです。
2) 高負荷状況では、ノードを追加することでサーバーのパフォーマンスを確保できます。
3) MongoDB は、WEB アプリケーションにスケーラブルで高性能なデータ ストレージ ソリューションを提供することを目的としています。
4) MongoDB はデータをドキュメントとして保存し、データ構造はキーと値 (key=>value) のペアで構成されます。 MongoDB ドキュメントは JSON オブジェクトに似ています。フィールド値には、他のドキュメント、配列、ドキュメント配列を含めることができます。

3. SpringBoot2 との統合

1. MongoDB の基本環境

# 打开命令行
MongoDB4.0\bin>mongo
# 展示所有数据库
> show databases
# 新建一个admin数据库,命令比较难为情
> db.admin.insert({"name":"管理员数据库"});
# 使用admin数据库
> use admin
# 创建root用户,具有读写权限
> db.createUser({user:"root",pwd:"root",roles:[{role:"readWrite",db:"admin"}]})
  Successfully added user:
ログイン後にコピー

2. コアの依存関係

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
ログイン後にコピー

3. 設定ファイル

ユーザー名: root
パスワード: root
データベース: admin

spring:
  data:
    mongodb:
      uri: mongodb://root:root@localhost:27017/admin
ログイン後にコピー

4. カプセル化されたアプリケーション インターフェイス

public interface ImgInfoRepository {
    void saveImg(ImgInfo imgInfo) ;
    ImgInfo findByImgTitle(String imgTitle);
    long updateImgInfo(ImgInfo imgInfo) ;
    void deleteById(Integer imgId);
}
ログイン後にコピー

5. コア コード ブロック

MongoDB を次のように使用する方法が続きます。

import com.boot.mongodb.entity.ImgInfo;
import com.boot.mongodb.repository.ImgInfoRepository;
import com.mongodb.client.result.UpdateResult;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class ImgInfoRepositoryImpl implements ImgInfoRepository {
    @Resource
    private MongoTemplate mongoTemplate;
    @Override
    public void saveImg(ImgInfo imgInfo) {
        mongoTemplate.save(imgInfo) ;
    }
    @Override
    public ImgInfo findByImgTitle(String imgTitle) {
        Query query=new Query(Criteria.where("imgTitle").is(imgTitle));
        return mongoTemplate.findOne(query,ImgInfo.class);
    }
    @Override
    public long updateImgInfo(ImgInfo imgInfo) {
        Query query = new Query(Criteria.where("imgId").is(imgInfo.getImgId()));
        Update update= new Update().set("imgTitle", imgInfo.getImgTitle()).set("imgUrl", imgInfo.getImgUrl());
        UpdateResult result = mongoTemplate.updateFirst(query,update,ImgInfo.class);
        return result.getMatchedCount();
    }
    @Override
    public void deleteById(Integer imgId) {
        Query query = new Query(Criteria.where("imgId").is(imgId));
        mongoTemplate.remove(query,ImgInfo.class);
    }
}
ログイン後にコピー

6. テストコードブロック

import com.boot.mongodb.MongoDBApplication;
import com.boot.mongodb.entity.ImgInfo;
import com.boot.mongodb.repository.ImgInfoRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
import java.util.Date;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MongoDBApplication.class)
public class MongoTest {
    @Resource
    private ImgInfoRepository imgInfoRepository ;
    @Test
    public void test1 (){
        ImgInfo record = new ImgInfo() ;
        record.setImgId(1);
        record.setUploadUserId("A123");
        record.setImgTitle("博文图片");
        record.setSystemType(1) ;
        record.setImgType(2);
        record.setImgUrl("https://avatars0.githubusercontent.com/u/50793885?s=460&v=4");
        record.setLinkUrl("https://avatars0.githubusercontent.com/u/50793885?s=460&v=4");
        record.setShowState(1);
        record.setCreateDate(new Date());
        record.setUpdateDate(record.getCreateDate());
        record.setRemark("知了");
        record.setbEnable("1");
        imgInfoRepository.saveImg(record);
    }
    @Test
    public void test2 (){
        ImgInfo imgInfo = imgInfoRepository.findByImgTitle("博文图片") ;
        System.out.println("imgInfo === >> " + imgInfo);
    }
    @Test
    public void test3 (){
        ImgInfo record = new ImgInfo() ;
        record.setImgId(1);
        record.setUploadUserId("A123");
        record.setImgTitle("知了图片");
        record.setSystemType(1) ;
        record.setImgType(2);
        record.setImgUrl("https://avatars0.githubusercontent.com/u/50793885?s=460&v=4");
        record.setLinkUrl("https://avatars0.githubusercontent.com/u/50793885?s=460&v=4");
        record.setShowState(1);
        record.setCreateDate(new Date());
        record.setUpdateDate(record.getCreateDate());
        record.setRemark("知了");
        record.setbEnable("1");
        long result = imgInfoRepository.updateImgInfo(record) ;
        System.out.println("result == >> " + result);
    }
    @Test
    public void test4 (){
        imgInfoRepository.deleteById(1);
    }
}
ログイン後にコピー

以上がSpringBoot2 で MongoDB データベースを構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

mongodb ではどのバージョンが一般的に使用されますか? mongodb ではどのバージョンが一般的に使用されますか? Apr 07, 2024 pm 05:48 PM

mongodb ではどのバージョンが一般的に使用されますか?

Nodejsとvuejsの違い Nodejsとvuejsの違い Apr 21, 2024 am 04:17 AM

Nodejsとvuejsの違い

SpringBootとSpringMVCの比較と差異分析 SpringBootとSpringMVCの比較と差異分析 Dec 29, 2023 am 11:02 AM

SpringBootとSpringMVCの比較と差異分析

mongodb によって作成されたデータベースはどこにありますか? mongodb によって作成されたデータベースはどこにありますか? Apr 07, 2024 pm 05:39 PM

mongodb によって作成されたデータベースはどこにありますか?

mongodbデータベースの利点は何ですか mongodbデータベースの利点は何ですか Apr 07, 2024 pm 05:21 PM

mongodbデータベースの利点は何ですか

mongodb とはどういう意味ですか? mongodb とはどういう意味ですか? Apr 07, 2024 pm 05:57 PM

mongodb とはどういう意味ですか?

mongodb データベース ファイルはどこにありますか? mongodb データベース ファイルはどこにありますか? Apr 07, 2024 pm 05:42 PM

mongodb データベース ファイルはどこにありますか?

mongodbを開く方法 mongodbを開く方法 Apr 07, 2024 pm 06:15 PM

mongodbを開く方法

See all articles