【问题标题】:Retrieving primary key information with UCanAccess使用 UCanAccess 检索主键信息
【发布时间】:2017-04-25 12:23:31
【问题描述】:

我正在尝试使用 UCanAccess JDBC 驱动程序从 Access 数据库中获取所有数据库元数据,但我需要更改我的结果集类型以在结果集中导航,但是当我的结果集使用方法创建时如何设置好的类型接口数据库元数据? 代码在这里

 v_resultPrimaryKey = p_metadata.getPrimaryKeys(null, Tools.getDBName(), p_table);

        ResultSet v_resultColumn = p_metadata.getColumns(null, Tools.getDBName(), p_table, null);

        v_resultPrimaryKey.first();

        String v_pkName = v_resultPrimaryKey.getString("COLUMN_NAME");

【问题讨论】:

  • 你认为你需要改变类型为什么?根本问题是什么?
  • 当我不想使用“.first”时,它告诉我该功能不受支持
  • 因为 ucanacess 的结果集处于仅转发模式,我该如何更改它
  • 为什么?你真的需要倒退吗?为什么不像其他人一样通过它next()
  • 当然。您在开始之前开始,然后一个next() 给您第一个,另一个给您第二个,依此类推。这是相当基本的。

标签: java jdbc resultset ucanaccess database-metadata


【解决方案1】:

您无需更改 ResultSet 类型即可检索主键信息。你需要做的就是这样的事情......

try (Connection conn = DriverManager.getConnection(connUrl)) {
    try (ResultSet rs = conn.getMetaData().getPrimaryKeys(null, null, "InvoiceDetail")) {
        while (rs.next()) {
            System.out.printf("%s (%d)%n", 
                    rs.getString("COLUMN_NAME"), 
                    rs.getInt("KEY_SEQ"));
        }
    }
}

...对于这样的表...

... 将产生如下输出:

InvoiceNumber (1)
LineItemNumber (2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-08
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多