【问题标题】:Get name of current table by resultSet on RowMapper [closed]通过 RowMapper 上的结果集获取当前表的名称 [关闭]
【发布时间】:2016-02-12 12:30:34
【问题描述】:

在 RowMapper 的实现中可以获取当前表的名称。 我尝试通过元数据,但没有成功

【问题讨论】:

  • 你的意思是什么实现?
  • 我正在使用 SpringData JdbcTemplate 在数据库上运行查询,并实现 RowMapper 来映射结果集
  • 你用的是什么数据库驱动jar?
  • H2 数据库 org.h2.Drive
  • 阅读 h2database.com/html/features.html 获取 getTableName() 并检查 getTableName() == null 的任何提及条件是否适用于您。

标签: java database-table database-metadata


【解决方案1】:

你可以尝试通过

来确定表名
 ResultSet.getMetaData().getTableName(int column)

由于 ResultSet 和 ResultSetMetaData 都只是接口,具体实现取决于您使用的数据库驱动程序。

所以,如果这个方法没有传递表名:

  • 驱动程序实现不支持它。
  • 该列没有关联的表(例如选择 sysdate ...)

例如当前的 oracle db 驱动程序不支持它。

对于 H2,检查 http://www.h2database.com/html/features.html ,它描述了 getTableName() 的行为,具体取决于所选的兼容模式。

【讨论】:

    猜你喜欢
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 2018-09-15
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    相关资源
    最近更新 更多