我需要从表中选择多个具有多个结果集值的列。我发现有些问题已经得到解答,但是找不到能帮助我的特定问题。
我试过这个但仍然没有运气:
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
。
如果有人告诉我访问包含多个列值的多个结果集值的适当方法,我将非常感激。
答案 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");