将查询结果集获取到2d String数组中

时间:2012-01-12 04:15:53

标签: java string resultset

在Java中执行查询后,说我得到了像

这样的结果集
allan murphy 20 10
kenny rogers 12 22
marry watson 34 5

我希望将整个结果集转换为变量,以便我可以返回变量并在其他调用函数中使用它。我想将整个结果集放到一个2D String数组中,以便稍后我可以通过索引来访问它们。

问题是::将整个结果集转换为2D字符串数组是否是一个好的概念?和如何将它变成2D字符串数组? thankz。

2 个答案:

答案 0 :(得分:1)

这就是你获取结果集的方法应该是这样的:

    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();
        }
    }

并且构建播放器Object的类看起来像这样:

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;
    }
}

现在,您的Resultset的每一行都有一个对象!通过将setter和getter添加到Player Class,您可以提取所需的任何信息。

要显示它,只需将其添加到List并调用它们的getter,甚至可以实现一个方法,一次性为您提供整套信息。

答案 1 :(得分:0)

将结果集放入2d sting数组中并不是一个好的概念。使用java对象表示单行数据。使用getter和setter来表示每列。将每一行转换为此对象并将其放入List或其他Collection中。我不确定20 10和其他数字代表什么。但如果它们是整数,则它们应该作为整数保持在对象内,而不是将它们转换为字符串,然后将它们重新转换回整数。