中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用MongoDB和Spring Boot怎么創建一個CRUD應用

發布時間:2021-07-26 14:00:21 來源:億速云 閱讀:167 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關 使用MongoDB和Spring Boot怎么創建一個CRUD應用,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

MongoDB是什么?

MongoDB是一個NoSQL文檔數據庫。在這個數據庫中,記錄是document,其行為很像JSON對象。所以它主要是鍵值對。

使用MongoDB作為數據庫的主要優點是:

  • MongoDB是一種無模式文檔數據庫。一個集合包含不同的文檔。

  • 單個對象的結構是清晰的。

  • 沒有復雜的連接。

  • 深查詢能力。

  • 易于擴展。

以下是在企業應用中使用MongoDB或類似的NoSQL數據庫的幾個原因:

  • 更快的JSON數據檢索。

  • 很容易在屬性上添加索引。

  • 用于分片——分片是跨多臺機器存儲數據記錄的過程。在跨多臺機器存儲數據時,通常會根據某些標準對數據進行分區。

  • 更新快。

  • 容易查詢。

先決條件

要創建這個示例應用程序,你需要:

  • Spring Boot(版本2.4.1)

  • MongoDB

  • Gradle

  • Java

Spring Boot CRUD應用程序

作為本文的一部分,我將構建一個REST CRUD應用程序。這包括

  • 一個圖書館-我們將在MongoDB數據庫中創建一個圖書館集合。

  • 我們將按作者來存放這些書。

  • 用戶可以調用REST API按作者檢索圖書。

  • 用戶可以調用REST API來檢索圖書館中的所有圖書。

  • POST - /v1/mongodbapp/books -添加一本書。

  • GET - /v1/mongodbapp/books——從庫中檢索所有的圖書。

  • GET - /v1/mongodbapp/books/id -檢索特定的圖書。

  • DELETE—/v1/mongodbapp/books/id—從庫中刪除一本書。

如何使用MongoDB和Spring Boot CRUD

為了開始創建這個應用程序,我們將使用gradle來處理我們的依賴并構建應用程序。在Spring Boot應用程序中添加以下依賴項:

implementation 'org.springframework.boot:spring-boot-starter-data-mongodb' implementation 'org.springframework.boot:spring-boot-starter-web'

一旦我們有了這些依賴,我們將能夠連接到mongodb數據庫。但是我們仍然需要添加數據庫的位置。我們將在application.properties中添加所需的屬性。如下:

spring.data.mongodb.host = localhostspring.data.mongodb.port=27017 spring.data.mongodb.database=library

這將允許我們連接到運行在主機localhost上的端口27017上的MongoDB數據庫,并且數據庫是library。

定義數據模型

作為圖書館的一部分,我們將需要書籍。我們的主要數據對象是Book。這個數據模型將包括書名、作者和ISBN。具體內容如下:

package com.betterjavacode.mongodbdemo.mongodbapp.models;import org.springframework.data.annotation.Id;import org.springframework.data.mongodb.core.mapping.Document;@Document(collection = "books")public class Book{ @Id private String id; private String title; private String author; private String isbn; public Book() { } public Book(String title, String author, String isbn) { this.title = title; this.author = author; this.isbn = isbn; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public String getIsbn() { return isbn; } public void setIsbn(String isbn) { this.isbn = isbn; }}

因為我們使用的是MongoDB,所以@Document注釋覆蓋了集合書籍。

添加Repository接口

我們需要一個Repository庫接口來獲取、保存或刪除book對象。在repositories包中,我們將添加BookRepository接口:

package com.betterjavacode.mongodbdemo.mongodbapp.repositories;import com.betterjavacode.mongodbdemo.mongodbapp.models.Book;import org.springframework.data.mongodb.repository.MongoRepository;import java.util.List;public interface BookRepository extends MongoRepository<Book, String>{ List findByTitleContaining(String title); List findByAuthor(String name);}

這個Repository庫有兩個方法:可以通過標題或作者姓名獲取圖書。

添加Spring REST API控制器

現在,為了使我們的應用程序REST CRUD,我們將添加一個REST控制器。這個控制器將包含POST、PUT、GET和DELETE API。

package com.betterjavacode.mongodbdemo.mongodbapp.controller;import com.betterjavacode.mongodbdemo.mongodbapp.models.Book;import com.betterjavacode.mongodbdemo.mongodbapp.repositories.BookRepository;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import org.springframework.web.bind.annotation.*;import java.util.ArrayList;import java.util.List;import java.util.Optional;@CrossOrigin("http://localhost:8080")@RestController@RequestMapping("/v1/mongodbapp")public class BookController{ @Autowired BookRepository bookRepository; @GetMapping("/books") public ResponseEntity<List> getAllBooks(@RequestParam(required = false) String bookTitle) { try { List listOfBooks = new ArrayList<>(); if(bookTitle == null || bookTitle.isEmpty()) { bookRepository.findAll().forEach(listOfBooks::add);} else { bookRepository.findByTitleContaining(bookTitle).forEach(listOfBooks::add); } if (listOfBooks.isEmpty()) { return new ResponseEntity<>(HttpStatus.NO_CONTENT); } return new ResponseEntity<>(listOfBooks, HttpStatus.OK); } catch (Exception e) { return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR); } } @GetMapping("/books/{id}") public ResponseEntity getBookById(@PathVariable("id") String id) { try { Optional bookOptional = bookRepository.findById(id); return new ResponseEntity<>(bookOptional.get(), HttpStatus.OK); } catch (Exception e) { return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR); } } @PostMapping("/books") public ResponseEntity addABookToLibrary(@RequestBody Book book) { try { Book createdBook = bookRepository.save(new Book(book.getTitle(), book.getAuthor(), book.getIsbn())); return new ResponseEntity<>(createdBook, HttpStatus.CREATED); } catch (Exception e) { return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR); } } @PutMapping("/books/{id}") public ResponseEntity updateABook(@PathVariable("id") String id, @RequestBody Book book) { Optional bookOptional = bookRepository.findById(id); if (bookOptional.isPresent()) { Book updatedBook = bookOptional.get(); updatedBook.setTitle(book.getTitle()); updatedBook.setAuthor(book.getAuthor()); updatedBook.setIsbn(book.getIsbn()); return new ResponseEntity<>(bookRepository.save(updatedBook), HttpStatus.OK); } else { return new ResponseEntity<>(HttpStatus.NOT_FOUND); } } @DeleteMapping("/books/{id}") public ResponseEntity deleteABook(@PathVariable("id") String id) { try { bookRepository.deleteById(id); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } catch (Exception e) { return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); } }}

BookController 是我們的REST控制器類。它包括

  • @RestController -將其標記為REST控制器。

  • @CrossOrigin -這個注釋允許跨源資源共享(CORS)。這將在REST響應中添加CORS訪問控制頭。這些頭是必需的,因為它允許服務器不僅指定誰可以訪問資源,而且指定如何訪問資源。

  • 我們添加了不同的方法——addabooktolilibrary將書籍添加到數據庫,getAllBooks從數據庫中檢索書籍。

完整的演示

現在我們已經添加了REST控制器、Repository庫方法,我們將構建并運行這個應用程序。作為演示的一部分,我將使用POSTMAN來訪問API。

可以從命令行或正在使用的代碼編輯器構建應用程序。我更喜歡命令行,所以我已經構建了應用程序。一旦編譯完成,你就可以像下面這樣運行程序:

java -jar mongodbapp-0.0.1-SNAPSHOT.jar

讓我們用POSTMAN給我們的圖書館添加書籍。

使用MongoDB和Spring Boot怎么創建一個CRUD應用

如上所示,我們添加了一本書,響應將在數據庫中顯示已添加的書。

下面的API是一個GET API,用于從數據庫中獲取所有書籍。

使用MongoDB和Spring Boot怎么創建一個CRUD應用

現在,為了顯示從庫中刪除圖書,我們將使用delete API。

使用MongoDB和Spring Boot怎么創建一個CRUD應用

以上就是 使用MongoDB和Spring Boot怎么創建一個CRUD應用,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上栗县| 吐鲁番市| 尼勒克县| 洛阳市| 扎囊县| 黎城县| 襄垣县| 伽师县| 京山县| 镇赉县| 抚远县| 涞源县| 万山特区| 邹城市| 南京市| 通州区| 乐陵市| 达尔| 屏边| 乌审旗| 凤凰县| 元氏县| 舒城县| 嵩明县| 扶绥县| 定西市| 黄大仙区| 满城县| 富川| 襄城县| 汕头市| 邹平县| 峨山| 隆昌县| 进贤县| 新蔡县| 黄骅市| 观塘区| 远安县| 彭水| 临江市|