Spring Boot - создание веб-службы RESTful с доступом к MySql - PullRequest
0 голосов
/ 31 декабря 2018

Я отправляю запрос в rest-api для сохранения объекта в базе данных mysql.

Какой шаг отсутствует, чтобы я мог сохранить через Jpa объекты в моей базе данных?

Вот Rest-Controller

@RestController
public class OwnerRestController {
    @Autowired
    private final OwnerRestRepository repo;

    public OwnerRestController(OwnerRestRepository repo) {this.repo = repo;}

    @RequestMapping(value="/owner/add", method=RequestMethod.POST)
    public Owner create(@RequestBody Map<String, String> body){
        Owner o = new Owner();
        o.setFirstName(body.get("firstName"));
        o.setLastName(body.get("lastName"));
        o.setAddress(body.get("address"));
        o.setCity(body.get("city"));
        o.setTelephone(body.get("telephone"));
        this.repo.save(o);
        return o;
    }
}

Вот интерфейс репозитория

public interface OwnerRestRepository extends CrudRepository<Owner,integer>{}

Вот владелец JSON-объекта

{
    "firstName":"fname",
    "lastName":"lname",
    "address":"address1",
    "city":"city1",
    "telephone":"4711"
}

Ответ сервера

{
    "id": 11,
    "firstName": "fname",
    "lastName": "lname",
    "address": "address1",
    "city": "city1",
    "telephone": "4711"
}

Что не так в коде, что данные не могут быть сохранены в базе данных?

С уважением, Mux

1 Ответ

0 голосов
/ 15 февраля 2019

По умолчанию Spring запускает базу данных в памяти - H2, поэтому ваши элементы существуют только во время работы приложения.
Чтобы сохранить ваши данные, вам необходимо настроить приложение на использование другой базы данных.

Для запроса H2 вы также можете использовать Консольное приложение H2

Например, если вы хотите настроить MySQL, вам необходимо добавить следующие параметры конфигурации в ваш application.properties file.

spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

Если вы используете application.yml

spring:
  datasource:
    driverClassName: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost/test
    username: dbuser
    password: dbpass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...