这是我写的相关代码:
new SimpleJdbcInsert(dataSource)
.withSchemaName("test")
.withTableName("tableName")
.usingGeneratedKeyColumns("idColumn");
当我拨打executeAndReturnKey(parameters)
时,我在控制台上看到了这个:
WARN [org.springframework.jdbc.core.metadata.TableMetaDataProvider:locateTableAndProcessMetaData:336] (主要:)无法找到'tableName' - 列的表元数据 必须提供姓名
为什么会这样?我知道我可以手动指定列名,但我相信它不是使用JdbcSimpleInsert的重点。
答案 0 :(得分:0)
在不同的MySQL服务器上执行相同的查询时,我遇到了这个错误:java.sql.SQLException: Parameter metadata not available for the given statement
所以我用石头杀死了鸟类:)
因此,只需将generateSimpleParameterMetadata=true
添加到 JDBC连接网址,一切都会按预期工作。
答案 1 :(得分:0)
由于其他原因,我得到了同样的错误。在我的JDBC连接字符串中,我列出了架构。因此,放置withSchemaName
子句会导致此错误。当我删除它时,插入工作。