简体   繁体   English

将 H2 数据库与 Spring Boot 集成

[英]Integrating H2 Database with Spring Boot

I`m trying to integrate H2 database into my current project.我正在尝试将 H2 数据库集成到我当前的项目中。 But looks like my data isn't saved into the database.但看起来我的数据没有保存到数据库中。

I have post request method here:我在这里有发布请求方法:

@PostMapping(value = "/api/code/new", produces = "application/json")
    public ResponseEntity<?> postCodeSnippet(@RequestBody Code rqstCode) {
        Code nextCode = new Code(idCounter++, rqstCode.getCode(), LoadDate.getLoadDate());
        System.out.println(nextCode.getId());
        codeList.add(nextCode);
        codeService.saveOrUpdate(rqstCode);
        return ResponseEntity.ok(new DTOCode(String.valueOf(nextCode.getId())));
    }

where is codeService.saveOrUpdate() should send it to my database, but didn't. codeService.saveOrUpdate() 应该在哪里发送到我的数据库,但没有。 My database is always empty.我的数据库总是空的。 But other parts of the program work pretty well.但该程序的其他部分运行良好。

Here is my Code.java class:这是我的 Code.java 类:


import com.fasterxml.jackson.annotation.JsonIgnore;

import javax.persistence.*;

@Entity
public class Code {

    @JsonIgnore
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String code;
    private String date;

    public Code() {
    }

    public Code(Long id, String code, String date) {
        this.id = id;
        this.code = code;
        this.date = date;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }
}

Here is my CodeRepository.java interface:这是我的 CodeRepository.java 接口:


import org.springframework.data.repository.CrudRepository;

public interface CodeRepository extends CrudRepository<Code, Long> {

} 

Here is my CodeService.java class这是我的 CodeService.java 类


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

import java.time.Period;
import java.util.List;

@Service
public class CodeService {

    @Autowired
    CodeRepository codeRepository;

    public Code getCodeById(Long id) {
        return codeRepository.findById(id).get();
    }

    public void saveOrUpdate(Code code) {
        codeRepository.save(code);
    }

    public void delete(Long id) {
        codeRepository.deleteById(id);
    }

}

application.properties应用程序属性

server.port=8889
management.endpoints.web.exposure.include=*
management.endpoint.shutdown.enabled=true
spring.datasource.url=jdbc:h2:file:../snippets
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update

spring.h2.console.enabled=true
spring.h2.console.settings.trace=false
spring.h2.console.settings.web-allow-others=false

SELECT * FROM CODE ,我得到了我的所有数据。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM