gpt4 book ai didi

java - spring jdbctemplate 为 last_insert_id() 返回 0

转载 作者:行者123 更新时间:2023-11-30 07:23:05 25 4
gpt4 key购买 nike

下面给出的代码总是为最后一个插入 ID 返回零。你能解释一下这段代码有什么问题吗?

JdbcTemplate insert = new JdbcTemplate(dataSource);

insert.update("INSERT INTO item (price, item_category) VALUES(?,?)",
new Object[] { beverage.getPrice(), beverage.getItemCategory() });
int id = insert.queryForInt( "SELECT last_insert_id()" );
System.out.println(id);
return insert.update("INSERT INTO beverage (id, name, quantity,size) VALUES(?,?,?,?)", new Object[] { id,beverage.getName(), beverage.getQuantity(),beverage.getSize() });

最佳答案

上面的整个代码必须包含在一个事务中。否则,JdbcTemplate 可以对所有语句使用池中的不同连接,并且 last_insert_id() 与事务相关联。

使用 @Transactional 或将 JDBC 调用包装在 TransactionTemplate 中.

关于java - spring jdbctemplate 为 last_insert_id() 返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12236948/

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