2016-03-26 3 views
0

Я использовал swagger в своих проектах, чтобы генерировать код для выполнения запросов HTTP (GET, POST и DELETE) к некоторым объектам (названным проектам).Как использовать базу данных H2 с swagger

Проблема в том, что эти объекты создаются в памяти. Я имею в виду, что когда я перезапускаю свой веб-сервис, предыдущие изменения удаляются. Итак, я хочу использовать (локальную) базу данных для сохранения этих изменений. Меня действительно интересует база данных H2. Я хочу также использовать JDBC для подключения к моей локальной базе данных. Главная проблема здесь в том, что я не понял, как использовать jdbc в первую очередь. Во-вторых, код, созданный чванством, слишком сложный для меня. Я не знаю, где мне делать код jdbc ...

Я скопировал здесь код, используемый для двух запросов (например, POST и DELETE). Можете ли вы помочь мне установить соединение с локальной базой данных h2? Должен ли я делать этот код в этом классе?

Вот часть кода развязность:

@POST 
@Consumes({"application/x-www-form-urlencoded"}) 
@Produces({"application/json"}) 
@io.swagger.annotations.ApiOperation(value = "", notes = "Creates a project and returns the whole object", response = Project.class, tags = {}) 
@io.swagger.annotations.ApiResponses(value = { 
@io.swagger.annotations.ApiResponse(code = 200, message = "Created project", response = Project.class), 
@io.swagger.annotations.ApiResponse(code = 500, message = "Internal API error/Server error", response = Project.class)}) 
public Response createProject(
@ApiParam(value = "Document name", required = true) @FormParam("name") String name, 
    @ApiParam(value = "Document title") @FormParam("trigram") String trigram, @Context SecurityContext securityContext) 
    throws NotFoundException { 
    return delegate.createProject(name, trigram, securityContext); 
    } 

    //url is localhost:8080/api/v1/projects/{id} 
    @DELETE 
    @Path("/{id}") 
    @io.swagger.annotations.ApiOperation(value = "", notes = "Deletes all projects", response = void.class, tags={ }) 
    @io.swagger.annotations.ApiResponses(value = { 
    @io.swagger.annotations.ApiResponse(code = 200, message = "Project is deleted.", response = void.class), 
    @io.swagger.annotations.ApiResponse(code = 500, message = "Internal API error/Server error", response = void.class) }) 
    public Response deleteProject(
    @ApiParam(value = "Document ID",required=true) @PathParam("id") String id,@Context SecurityContext securityContext) 
    throws NotFoundException { 
    return delegate.deleteProject(id,securityContext); } 
+0

вы смогли решить эту @ salamanka44? – Sampada

ответ

0

Вы должны создать класс отдельный dataobjectaccess (DAO), чтобы сделать подключение к базе данных. Вы можете вызвать его методы в классе, который вы включили в вопрос.

Фактически базовый способ состоит в том, чтобы даже выделить интерфейсы и классы реализации swagger, чтобы их было легче читать. Таким образом, ваш RESTful API действительно будет интерфейсом со всеми аннотациями в одном месте. Класс реализации может включать код, который, в свою очередь, вызывает класс DAO для подключения к базам данных.

Различные учебные пособия доступны для изучения JDBC, специфические для h2:

http://www.h2database.com/html/tutorial.html http://www.ayukucode.org/2012/03/16/create-table-insert-query-with-jdbc-and-h2-database/

Смежные вопросы