首页 > 解决方案 > 如何使用 Spring Boot 在 Postgresql 中插入用户输入的日期

问题描述

private JdbcTemplate jdbcTemplate;
    @Override
    public void insertDate(String date) {
        // TODO Auto-generated method stub
        System.out.println(date);
        String query = "insert into Calender values ( '"+ date + "')";
        jdbcTemplate.update(query);
    }

我用邮递员发送json数据

{
    "date":"2020-12-12"
}

我收到这样的错误

 ERROR: invalid input syntax for type date: "{
    "date":"2020-12-12"
}"

POJO类

private String date;

查询中需要做哪些更改?

标签: javapostgresqlspring-boot

解决方案


问题不在于查询,而在于您的 RestController。您应该为您的请求编写一个单独的类。

RequestDate.java

class RequestDate {
    private String date;
}

在您的休息控制器中,您将不得不更改您的请求正文以映射到 RequestDate 而不是 String

@RequestBody RequestDate date

并在调用服务时

datePickerService.insertDate(date.date)

现在整个请求正文正在被传递,您正尝试将字符串“{“date”:“2020-12-12”}”插入表中,而不是“2020-12-12”


推荐阅读