如何从MySQL数据库中获取所有结果集值?

时间:2017-01-20 17:52:41

标签: java mysql jdbc

我需要从表中选择多个具有多个结果集值的列。我发现有些问题已经得到解答,但是找不到能帮助我的特定问题。

我试过这个但仍然没有运气:

String dboutp = "";
try {
    DBConnect Database = new DBConnect();
    Connection con = Database.getcon();
    String query="SELECT ITEM, PHP FROM table WHERE name=?";
    PreparedStatement ps = con.prepareStatement(query);
    ps.setString(1, name);
    ResultSet rs=ps.executeQuery();
    int columnCount = 0;
    Object[] row = new Object[columnCount];
    for (int i = 1; i <= columnCount; ++i) {
        row[i - 1] = rs.getString(i); // Or even rs.getObject()
        System.out.println(row[i-1]);
    }
    DefaultTableModel model = null;
    model.addRow(row);
    con.close();
} catch (SQLException e) {
    e.printStackTrace();
}

我也尝试过:

String dboutp = "";
try {
    DBConnect Database = new DBConnect();
    Connection con = Database.getcon();
    String query="SELECT ITEM, PHP FROM table WHERE name=?";
    PreparedStatement ps = con.prepareStatement(query);
    ps.setString(1, name);
    ResultSet rs=ps.executeQuery();
    int i=1;
    while(rs.next()){
        dboutp=dboutp+","+rs.getString(i);
        i++;
    }
    con.close();
} catch (SQLException e) {
    e.printStackTrace();
}

model.addRow(row)中的第一个方法我收到java.lang.NullPointerException的异常,而第二种方法发生此异常:java.sql.SQLException: Column Index out of range, 2 > 1

如果有人告诉我访问包含多个列值的多个结果集值的适当方法,我将非常感激。

1 个答案:

答案 0 :(得分:1)

看起来你正在混淆&#34;行&#34;在结果集中,&#34;列&#34;在行中。

遍历行。对于每一行,获取列的值。

为了让事情变得有效,请从简单的事情开始。您可以使用变量来计算提取的行数。只是不要将您提取的行数与行中的列数混淆。

    ResultSet rs=ps.executeQuery();
    int rn = 0;
    while(rs.next()) {
       rn++;
       String item = rs.getString(1);
       String php  = rs.getString(2);

       System.out.println(" rn=" + rn + " item=" + item + " php=" + php);

    }
    System.out.println(" fetched total of " + rn + " rows");
相关问题