3

这是我写的相关代码:

new SimpleJdbcInsert(dataSource)
    .withSchemaName("test")
    .withTableName("tableName")
    .usingGeneratedKeyColumns("idColumn");

当我打电话给executeAndReturnKey(parameters)我时,我在控制台上读到了这个:

WARN [org.springframework.jdbc.core.metadata.TableMetaDataProvider:locateTableAndProcessMetaData:336] (main:) 无法找到“tableName”的表元数据——必须提供列名

为什么会这样?我知道我可以手动指定列名,但我相信这不是使用 JdbcSimpleInsert 的重点。

  • MySQL 版本是 5.5.9
  • MySQL 连接器/J 5.1.23
  • 春天 3.2.1
4

2 回答 2

0

在不同的 MySQL 服务器上执行相同的查询时,我遇到了这个错误:java.sql.SQLException: Parameter metadata not available for the given statement.
所以我用石头杀死了鸟:)

因此,只需添加generateSimpleParameterMetadata=trueJDBC 连接 URL,一切都会按预期工作。

于 2013-02-15T09:14:26.590 回答
0

由于不同的原因,我得到了相同的错误。在我的 JDBC 连接字符串中,我列出了架构。因此,放置withSchemaName子句导致了这个错误。当我删除它时,插入工作。

于 2017-05-13T21:41:03.447 回答