java - 如何使用 JdbcTemplate 获取最后一个自增值?

标签 java mysql spring-jdbc jdbctemplate

我正在使用 SELECT LAST_INSERT_ID() 获取最后一个自动递增的值。它在 SQLyog 和命令提示符下工作正常,但是当我像这样使用 Spring JdbcTemplate 使用相同的查询时:

String SQl1="SELECT LAST_INSERT_ID()";
int sales_id=jdbcTemplateObject.queryForInt(SQl1);
System.out.println("returned sales_id is"+sales_id);

它返回 0 而不是预期的最后一个自动递增的值。如何获得期望值?

最佳答案

您可能在 Spring JdbcTemplate 中使用连接池。

如果是,您的驱动程序可能使用一个连接进行插入,但对 last_insert_id 查询使用另一个不同的连接。

要强制使用相同的连接,请在插入之前启动一个事务,并在 last_insert_id 查询之后提交它。

关于java - 如何使用 JdbcTemplate 获取最后一个自增值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27579730/

相关文章:

java - 迁移到 AndroidX -“程序类型已存在 : android. support.v4.media.MediaBrowserCompat

java - 如何从 Java 程序运行 Linux 命令 “netstat”?

java - JdbcTemplate.queryforList() 返回值但 map.get 返回 null

java - 将整数数组(java)存储到MySQL数据库的好方法是什么

java - java中的类级锁定

php - 如何从插入的行中获取最后一个 id?

mysql - 我们可以在 MySQL 基于范围的分区中调用用户定义的函数吗

php - 用于将 csv 文件插入 mysql 数据库的 Drupal 模块

java - 受影响的 Oracle JDBC batchUpdate 行始终为 -2 (Statement.SUCCESS_NO_INFO)

java - 我应该捕获 EmptyResultDataAccessException 吗?