Problem z wyświetleniem bazy danych z json

Odpowiedz Nowy wątek
2019-05-04 22:26

Rejestracja: 10 miesięcy temu

Ostatnio: 2 dni temu

0

Witam mam problem z wgraniem danych z pliku json. W przegladarce pokazuje sie tylko [] element tablicy. Ktos wie?

@SpringBootApplication
public class Application {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}

@Bean
CommandLineRunner runner(ServiceBooks serviceBooks){
return args -> {
// read JSON and load json
ObjectMapper mapper = new ObjectMapper();
TypeReference<List<books>> typeReference = new TypeReference<List<books>>(){};
InputStream inputStream = TypeReference.class.getResourceAsStream("/dbjson/book.json");
try {
List<books> book = mapper.readValue(inputStream,typeReference);
serviceBooks.save((Books) book);
System.out.println("Books Saved!");
} catch (IOException e){
System.out.println("Unable to save books: " + e.getMessage());
}
};
}
}

Kontroler:
@RestController
@RequestMapping("/")
public class ControllerBooks {
//
ServiceBooks serviceBooks;

@Autowired
public ControllerBooks(ServiceBooks serviceBooks) {
this.serviceBooks = serviceBooks;
}

@GetMapping("/api/books")
public Iterable<Books> list() {
    return serviceBooks.list();
}

Serwis:
@Service
public class ServiceBooks {

RepositoryBooks repositoryBooks;

@Autowired
public ServiceBooks(RepositoryBooks repositoryBooks) {
this.repositoryBooks = repositoryBooks;
}

public Iterable<Books> list() {
    return repositoryBooks.findAll();
}

//
public Books save(Books books) {
return repositoryBooks.save(books);
}

public void zapisz (List<Books> book) {
    repositoryBooks.saveAll(book);
}

Repozytorium:
@Repository
public interface RepositoryBooks extends CrudRepository<Books,String> {

Plik Json(wyciałem kawałek):

{
"requestedUrl": "https://www.googleapis.com/bo[...]umes?q=java&maxResults=40",
"items": [
{
"kind": "books#volume",
"id": "7tkN1CYzn2cC",
"etag": "pfjjxSpetIM",
"selfLink": "https://www.googleapis.com/books/v1/volumes/7tkN1CYzn2cC",
"volumeInfo": {
"title": "A Hypervista of the Java Landscape",
"publisher": "InfoStrategist.com",
"industryIdentifiers": [
{
"type": "ISBN_13",
"identifier": "9781592432172"
},
{
"type": "ISBN_10",
"identifier": "1592432174"
}
],

Jeszcze raz - jaki jest właściwie problem? - Pinek 2019-05-04 22:28

Pozostało 580 znaków

2019-05-05 11:46

Rejestracja: 10 miesięcy temu

Ostatnio: 2 dni temu

0

Jak wpisuje http://localhost:8080/api/books to pokazuje się []

Pozostało 580 znaków

2019-05-05 12:13

Rejestracja: 10 miesięcy temu

Ostatnio: 2 dni temu

0

Albo ogólnie jak wyświetlić te dane z pliku json jako baza danych ?Bo ciągle mam z tym problem.

Pozostało 580 znaków

2019-05-05 12:35

Rejestracja: 1 rok temu

Ostatnio: 1 godzina temu

0
Dawid040791 napisał(a):

Albo ogólnie jak wyświetlić te dane z pliku json jako baza danych ?Bo ciągle mam z tym problem.

Obawiam się, że nie rozumiesz słowa "baza danych". Spróbuj to inaczej określić, bo nie wiadomo o co ci chodzi

edytowany 1x, ostatnio: AnyKtokolwiek, 2019-05-05 12:36

Pozostało 580 znaków

2019-05-05 13:38

Rejestracja: 10 miesięcy temu

Ostatnio: 2 dni temu

0

Z pliku Json mają byc pobierane dane w celu wyswietlenia np na localhost:8080/api/book/{isbn}. Np. https://zapodaj.net/fe05345819a92.png.html

Pozostało 580 znaków

2019-05-05 13:44

Rejestracja: 4 lata temu

Ostatnio: 40 minut temu

0

Obawiam się, że plik json który wrzuciłeś to jest to body request który tworzy książkę. Co za tym idzie taka książka jest zapisana w bazie danych. Następnie jak już ją zapiszesz w bazie danych to pobierasz wedle uznania po isbn czy czym tam chcesz.

Pozostało 580 znaków

2019-05-05 14:05

Rejestracja: 10 miesięcy temu

Ostatnio: 2 dni temu

0

Właśnie mam problem z wyswietleniem danych po przez localhost:8080 z tego pliku.

a masz je w bazie? - podroznik 2019-05-05 14:10

Pozostało 580 znaków

2019-05-05 14:21

Rejestracja: 10 miesięcy temu

Ostatnio: 2 dni temu

0

Plik mam w folderze resources ponieważ nie ma byc uzyta baza danych(mysql itp). Treśc:The Homework app can't require any other 3rd party software to be installed manually (e.g. manual setup of the Tomcat Server or MySQL database).

Pozostało 580 znaków

2019-05-05 14:42

Rejestracja: 4 lata temu

Ostatnio: 40 minut temu

0

A czy ten kawałek kodu na pewno sie wykonuje?


try {
List<books> book = mapper.readValue(inputStream,typeReference);
serviceBooks.save((Books) book);
System.out.println("Books Saved!");
} catch (IOException e){
System.out.println("Unable to save books: " + e.getMessage());
}
};

Bo po tym powinny się zapisać w bazie. Po drugie z treści zadania wynika, że nie masz używać zewnętrznych zalezności więc nie wiem po co pchać się w JPA. Dla mnie sprawa jest prosta.
Tworzysz proste repozytorium na zasadzie:

class BookRepository {
List<Books> saved = new ArrayList();

void saveAll(List<Books> booksToSave) {
saved.addAll(booksToSave)
}
}

W tym samym repo implementujesz findAll findByIbnNumber czy co tam chcesz.

edytowany 1x, ostatnio: podroznik, 2019-05-05 14:46

Pozostało 580 znaków

2019-05-05 14:52

Rejestracja: 10 miesięcy temu

Ostatnio: 2 dni temu

0

Nie zapisuje

To jak się nie zapisuje to musi lecieć jakiś wyjątek cokolwiek. Bez tego to cieżko coś powiedzieć czy problem z połączeniem z bazą danych czy coś innego. - podroznik 2019-05-05 18:25

Pozostało 580 znaków

2019-05-06 02:19

Rejestracja: 10 miesięcy temu

Ostatnio: 2 dni temu

0

Tutaj ten projekt: https://github.com/dawidopiela/ApliciationHomework

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0