SimpleJdbcInsert与MySQL

时间:2013-02-07 11:52:49

标签: java mysql spring spring-jdbc

这是我写的相关代码:

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

当我拨打executeAndReturnKey(parameters)时,我在控制台上看到了这个:

  

WARN   [org.springframework.jdbc.core.metadata.TableMetaDataProvider:locateTableAndProcessMetaData:336]   (主要:)无法找到'tableName' - 列的表元数据   必须提供姓名

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

  • MySQL版本为5.5.9
  • MySQL Connector / J 5.1.23
  • Spring 3.2.1

2 个答案:

答案 0 :(得分:0)

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

因此,只需将generateSimpleParameterMetadata=true添加到 JDBC连接网址,一切都会按预期工作。

答案 1 :(得分:0)

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