【问题标题】:Retrive Result set in 2D array as a table to display this table in jsp page以表格形式检索二维数组中的结果集以在 jsp 页面中显示此表格
【发布时间】:2016-10-12 08:24:38
【问题描述】:

我有一个包含大量记录的 JDBC 表,我想将选定查询的结果集存储到多维数组中,并在 jsp 页面中显示为一个表。

Servlet 页面:

ArrayList al = new ArrayList();
ArrayList list = new ArrayList();
try {
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 
    con = DriverManager.getConnection("jdbc:oracle:thin:@ip/test","user","pass");
} catch (SQLException e) {
    out.println(e.getMessage());
}
try {
    OraclePreparedStatement stmt
                    = (OraclePreparedStatement) con.prepareStatement(
                            "Select * from MSG");
    ResultSet rs = stmt.executeQuery();
    while (rs.next()) {
    }

【问题讨论】:

  • 向我们展示您的代码
  • 我想将结果集以行和列的形式存储在二维数组中,并创建具有表结构的 jsp 页面以将此数组添加到此页面中...
  • 请帮忙!!

标签: java jsp jdbc multidimensional-array


【解决方案1】:

我没有测试,但基本上:

a) crate ArrayList<ArrayList<Object>> 来存储结果。

b) 获取列数rs.getMetaData().getColumnCount()

c) 对于每个行箱 ArrayList<Object>,从行中迭代列并将它们添加到其中。

d) 将行添加到结果数组中。

根据您的代码,可能是这样的:

ArrayList<ArrayList<Object>> resultTable = new ArrayList<ArrayList<Object>>();

     try {

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); con = DriverManager.getConnection("jdbc:oracle:thin:@ip/test","user","pass");

    } catch (SQLException e) {

        out.println(e.getMessage());

    }
    try {
        OraclePreparedStatement stmt
                = (OraclePreparedStatement) con.prepareStatement(
                        "Select * from MSG");

          ResultSet rs = stmt.executeQuery(); 
          ResultSetMetaData rsmd = rs.getMetaData();
          int columnCount = rsmd.getColumnCount();

          while (rs.next()) {
           ArrayList<Object> row = new ArrayList<Object>();
           for (int col=1; col < columnCount) {
               row.add(rs.getObject(col));
           }
           resultTable.add(row);
          }
    } catch ...

    // here you have results rewriten to resultsTable

【讨论】:

猜你喜欢
  • 2014-11-02
  • 1970-01-01
  • 2018-07-21
  • 2020-01-14
  • 2017-01-01
  • 1970-01-01
  • 2022-07-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多