[Spring] 3) BOOKORDER_Back(1)


MySQLにヒープデータを入れる


INSERT INTO BOOK(name,description,author,price)VALUES
INSERT INTO BOOK(name,description,author,price)VALES(「ドラえもん」「ドラえもんはいったい何を考えているの?」「朴多拉A夢」、20);
INSERT INTO BOOK(name,description,author,price)VALES(「破滅の刃」「本物の徳厚だけが見る破滅の刃...」「耳刀」、12);
INSERT INTO BOOK(name,description,author,price)VALES(「クレヨンしんちゃんは止められない」,「クレヨンしんちゃんは何をしているのか」,「シロ」,17);

[結果]


念のためcommit;まで

BookService.java


Services-ファイル名:生成BookService.javaBookServiceImpl.javaBookService.Javaのclassをインタフェースに変更する
Interfaceなので、個別の実装クラスがあります:BookServiceImpl.java

BookServiceImpl.JAvaコード



BookServiceImplにimplements BookServiceを追加します.
初期状態BookServiceImpl.java
package dev.book.bookorder.service;

import java.util.List;
import java.util.stream.Collectors;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import dev.book.bookorder.model.dto.BookDTO;
import dev.book.bookorder.model.entity.Book;
import dev.book.bookorder.repository.BookRepository;

// @Service, @Autowired라는 Annotation을 반드시 정해줘야함 
@Service 
public class BookServiceImpl implements BookService {

  @Autowired  
  private BookRepository bookRepository;

  @Override
  public List<BookDTO> findAllBooks() {
    List<Book> list = bookRepository.findAll();

    List<BookDTO> result = list.stream().map(r -> new BookDTO(r)).collect(Collectors.toList());

    return result;
  }
}
以上のコードを貼り付けます.

BookRepository.java


repository-ファイル名:BookRepository.javaを作成します.
BookRepository.Javaのclassをインタフェースに変更しますが、実装クラスは直接作成されません.
Repository内部ではSimpleJpa Repositoryを使用します.

BookController.Javaの変更

package dev.book.bookorder.controller;

import java.util.List;

import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import dev.book.bookorder.model.dto.BookDTO;
import dev.book.bookorder.service.BookService;


@CrossOrigin(origins="*")
@RestController // @Component와 동일, spring container에 bean으로 등록된다.
@RequestMapping("/api/v1/books") // localhost:8090/api/v1/books~
public class BookController {

  // BookService interface를 사용하기 위해 필드 선언
  private final BookService bookService;

  public BookController(BookService bookService){
    this.bookService = bookService;
  }

  @GetMapping()
  public List<BookDTO> findAllBooks(){
    return bookService.findAllBooks(); 
  }
}

😮 検査結果:BOOK ORDERアプリ



BACK部BOOKORDERでは動作しない.
FRONT人BOOK_ORDER_APPからnpm startで確認しなければなりません

空の配列が出現したため,後から正確にデータを取得できなかった.

問題解決!



サーバを実行する前に、アプリケーション.属性#ゾクセイ#spring.jpa.hibernate.ddl-auto=createupdateに変更する必要があります!
createに設定と、
BOOK TABLEのデータがDROPによって再CREATEされるため、Listは空の配列を返しているようです🙄

どうして知らないで、ほほほ、MySQLの中のデータは反映するのがとても良いです!!