具有行号的RecordSet到Object [] []?

时间:2012-11-12 10:28:05

标签: java sql parsing object recordset

例如,我在我的数据库上有一个表,如下所示:

| id | first_name | last_name   |
+----+------------+-------------+
| 23 | Hans       | Mueller     |
| 42 | John       | Kramer      |
| 23 | Max        | Mustermann  |

如何将记录集转换为Object[][],但从实际行号的列开始(例如下面)?

{
    {1, 23, "Hans", "Mueller"},
    {2, 42, "John", "Kramer"},
    {3, 76, "Max", "Mustermann"}
};

2 个答案:

答案 0 :(得分:1)

  

如何将记录集放入Object [] [],但从实际行号的列开始

如果您正在寻找开箱即用的JDBC API,我怀疑是否有。如果您愿意使用ResultSetMetaData,那么您可以编写一个函数来构建如下:

  1. 选择ResultSet
  2. 使用ResultSetMetaData
  3. 获取rsmd = resultSet.getMetaData()
  4. 使用rsmd.getColumnCount()
  5. 获取列数
  6. 遍历结果集中的每一行,并使用列索引从1开始获取列值(与索引从0开始的数组不同)。
  7. 使用rsmd.getColumnType(columnIndex)获取列的数据类型,并根据类型添加适当的实例(可以适当地对java.sql.Types进行切换)。

答案 1 :(得分:0)

看看ORM。如果这个东西远离你的实际知识尝试创建自己的类人像:

public class Person {
  int id;
  String firstname;
  String surname;

  public void initByResultSet(ResultSet result) {
    [...]
  }
}

或者如果你真的想让这个Object[][]在数据库中创建一个给你rownumber的视图。