gpt4 book ai didi

java - JDBC 查询返回值

转载 作者:行者123 更新时间:2023-11-29 12:44:50 27 4
gpt4 key购买 nike

我在尝试弄清楚如何使用 PostgreSQL 和 JDBC 获取最后插入的行的 ID 时遇到问题。

    CREATE TABLE vet_care (
id serial PRIMARY KEY,
deworming int,
castration int
);

我的查询是

String insertVetCare = "INSERT INTO vet_care(castration,deworming) VALUES("+castrated+","+dewormed+") RETURNING id";

我想要 id 值(序列号)供以后使用。我试着像这样执行查询:

int id = statement.executeUpdate(insertVetCare);

但这表示在编译后,“返回了预期结果时没有返回的结果。”并且它不会将其他值插入表中。

我怎样才能让它工作?

最佳答案

如果“id”的意思是“生成的身份 key ”,那你就错了。

executeUpdate() 方法返回受影响的行数,根据 javadocs .

您希望它返回自动生成的 key ,例如 this .

更多建议:使用 PreparedStatement 并绑定(bind)值。以这种方式构建 SQL 查询要求进行 SQL 注入(inject)攻击。

// Why make the gc work?  This query never changes.
private static final String INSERT_VET_CARE = "INSERT INTO vet_care(castration,deworming) VALUES(?, ?)";


PreparedStatement ps = connection.prepareStatement(INSERT_VET_CARE, Statement.RETURN_GENERATED_KEYS);
ps.setInt(1, castration);
ps.setInt(2, deworming);

关于java - JDBC 查询返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29701950/

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