gpt4 book ai didi

java - 如何在 spring 中仅使用自动生成的值向数据库插入一行,并返回一个 ID?

转载 作者:行者123 更新时间:2023-12-01 10:01:55 25 4
gpt4 key购买 nike

我使用spring框架,并且想向数据库插入一行以获得其ID,这是进一步处理所需要的。下面给出插入查询,这是一个简单的查询,没有参数。但更糟糕的是,如何使用 SimpleJdbcInsert 中的 executeAndReturnKey 构建工作调用?这是一个用于插入的 SQL 查询。但我不知道是否可以在 simpleJdbcInsert 实例中使用它。

insert into sdc_import_run(id_import_run, create_date)
values(nextval('seq_import_run'),now())

我试过了

Number genId = simpleJdbcInsert.withTableName("sdc_import_run")
.usingGeneratedKeyColumns("id_import_run")
.executeAndReturnKey(new MapSqlParameterSource());

这不起作用,问题是,他们想要表的所有参数,但我不需要其中任何参数,我只想插入自动生成的:id_import_run(主键)和创建日期。因此,我希望将插入的 ID 放入变量中。你会怎么做?

编辑这种方法效果很好。

public Integer persistInsertImportRunForId(){
String queryString = getSql("insertImportRunForId");
KeyHolder holder = new GeneratedKeyHolder();
jdbcTemplate.update(con -> {
return con.prepareStatement(queryString, Statement.RETURN_GENERATED_KEYS);
}, holder
);

return CommonUtils.tryOrGet(() -> holder.getKeys().get("id_import_run"), null);
}

最佳答案

您可以使用 JdbcTemplate 运行完整的插入 SQL 。您可以在此处提供您想要的任何 SQL,并在表的 DDL 允许的范围内为您的插入定义尽可能少或多的列。

This answer对此进行了更详细的介绍。

关于java - 如何在 spring 中仅使用自动生成的值向数据库插入一行,并返回一个 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36742355/

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