在Java中执行查询后,假设我得到了类似的结果集
allan murphy 20 10
kenny rogers 12 22
marry watson 34 5
我希望将整个结果集放入一个变量中,这样我就可以返回该变量并在其他调用函数中使用它。我想把整个结果集放到一个2D字符串数组中,这样以后我就可以通过索引来访问它们。
问题是:将整个结果集放入2D字符串数组是个好概念吗??如何将其放入2D字符串数组??谢谢。
获取结果集的方法应该是这样的:
public void getRecord() {
connectDB(); //method returning **con** of type Connection;
String query = "SELECT * From people"; //fetch whole record
Statement stmt;
try {
//execute query on open Connection
stmt = con.createStatement();
System.out.println("Query executed!");
//save result of query
ResulstSet rs;
rs = stmt.executeQuery(query);
//As long as Resultset has a next row...
while (rs.next()) {
//...Construct Object with people passing the Strings and Ints out of the DB
Player player= new Player(rs.getString("name"), rs.getString("surname"),
rs.getInt("number1"), rs.getInt("number2"));
}
stmt.close();
con.close(); //close open Connection to DB
} catch (SQLException e) {
e.printStackTrace();
}
}
而你正在构建播放器对象的类可能是这样的:
public class Player{
private String name;
private String surname;
private int number1;
private int number2;
public Player(String name, String surname, int number1, int number2) {
this.name= name;
this.surname= surname;
this.number1= number1;
this.number2= number2;
}
}
现在,您的结果集的每一行都有一个对象!通过将setter和getter添加到Player类中,您可以提取所需的任何信息。
要显示它,只需将其添加到List中,并调用他们的getter,甚至实现一个同时向您提供整套信息的方法。
不,将结果集放入2d字符串数组不是一个好主意。使用java对象来表示一行数据。使用带有getter和setter的字段来表示每一列。将每一行转换为此对象,并将其放入"列表"或其他"集合"中。我不知道20 10和其他数字代表什么。但是,如果它们是整数,那么它们应该作为整数保存在对象中,而不是将它们转换为字符串,然后再将它们重新转换为整数。