gpt4 book ai didi

java - JDBI:插入数据时出现Long/Interger异常

转载 作者:太空宇宙 更新时间:2023-11-04 10:23:11 25 4
gpt4 key购买 nike

我想使用 JDBI/Dropwizard 将一行插入 maraiDB 数据库中。

我的表格是用

生成的
CREATE TABLE parameter (
job_id INT references job(id),
name VARCHAR(150) NOT NULL,
content VARCHAR(150) NOT NULL
);

并使用接口(interface)将数据插入数据库

  @SqlUpdate("INSERT INTO parameter (job_id, name , content) VALUES " +
"(:job_id, :name , :content)")
long insert(
@Bind("job_id") int job_id,
@Bind("name") String name,
@Bind("content") String content);

现在当我通过

调用该方法时
private final ParameterJDBI parameterJDBI;
public void insert() {

parameterJDBI.insert(1, "name", "value");

}

我收到错误

ERROR [2018-06-14 15:39:46,083] io.dropwizard.jersey.errors.LoggingExceptionMapper: Error handling a request: 700d318fa5724df6
! java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long

我还将签名更改为 long 并将第一个参数更改为 1L 但错误仍然存​​在。我不明白这个长物体从哪里来。

最佳答案

您正在使用@SqlUpdate,它返回一个int(更新/插入的行数)。因此,您的方法声明应返回int或void。

如果你想返回 SQL 语句生成的键,那么你应该添加 @GetGeneratedKeys

关于java - JDBI:插入数据时出现Long/Interger异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50861541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com