【问题标题】:Order of columns returned in ResultSetResultSet 中返回的列的顺序
【发布时间】:2016-08-13 02:40:31
【问题描述】:

我有一个 Java 程序从 Access 数据库中读取数据,其中表是每次动态创建的,列数取决于填充的数据。

该表具有如下所示的列。只有列 RowIDStatusOfProcessing 是固定的,并将位于末尾。

column1,column2,column3, ... columnN,RowID,StatusOfProcessing

下面是一段代码

String str = "SELECT TOP 50 * FROM Dynamic_table WHERE StatusOfProcessing='0'";
resultSet = stmt.executeQuery(str);

当从 ResultSet 读取数据时,它是否总是有上面列出的顺序的列,还是应该使用

String str = "SELECT TOP 50 column1,column2,column3 .... columnN,RowID,StatusOfProcessing FROM Dynamic_table WHERE StatusOfProcessing='0'";
resultSet = stmt.executeQuery(str);

有人可以澄清一下吗?

【问题讨论】:

  • 如果您使用 * ,它将按照您创建字段的顺序返回字段。如果您希望它们以不同的顺序排列,则需要按特定顺序指定它们。这应该很容易让您自己测试......不是吗?

标签: java ms-access jdbc


【解决方案1】:

SELECT * 通常会按照它们的创建顺序返回列,例如,它们出现在 CREATE TABLE 语句中的顺序。但是,请记住,除了通过 index 检索列的值之外,如

int col1value = resultSet.getInt(1);

您还可以通过引用其名称来检索给定列中的值,如

int col1value = resultSet.getInt("column1");

此外,如果您需要查看列的实际顺序或验证 ResultSet 中列的名称和类型,您可以使用ResultSetMetaData 对象来获取该信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-22
    相关资源
    最近更新 更多