如何将数据库中的数据放入Arraylist?

时间:2019-10-20 19:49:16

标签: java sql arraylist

我要做的是将数据库中的数据放入Arraylist。

我有一个包含沼泽的数据库和一个简单的表格:Player,其中有一个名称和一个分数。

我正在尝试将所有这些播放器都放入ArrayList中,但是我尝试执行的操作不起作用,因为ArrayList是Player类型,而我输入的类型是String和int。

这是我现在拥有的代码:

public int test1() {
    try {
        ArrayList<Player> playerList= new ArrayList<Player>();
        BD=ds.getConnection();
        Statement s = BD.createStatement();
        ResultSet p = s.executeQuery("SELECT * FROM player");
        int i = 0;
        while(p.next()) {
            i++;
            playerList.add(p.getString("name")); //did not work
            playerList.add(p.getInt("score");
        }
        s.close();
        BD.close();
        return 1;
    } catch (java.sql.SQLException ex) {

        return 0;
    }
}

有人知道如何做的事,我将非常感谢。

私下

2 个答案:

答案 0 :(得分:0)

playerList将仅接受Player对象,而不接受String或int。因此,使用手边的数据创建一个Player对象,然后将其添加到列表中:

while(p.next()) {
    i++;
    String name = p.getString("name");
    int score = p.getInt("score");
    Player player = new Player(name, score); // assuming such a constructor exists

    // playerList.add(p.getString("name")); //did not work
    // playerList.add(p.getInt("score");

    // do this:
    playerList.add(player);
}

答案 1 :(得分:0)

您有一个玩家列表,并且您正在尝试向其中添加一个字符串和一个整数。

ArrayList<Player> playerList= new ArrayList<Player>();
...
      playerList.add(p.getString("name")); //did not work
      playerList.add(p.getInt("score");
...

您可以按照@Hovercraft Full Of Eels的建议,并在添加到列表之前创建一个新的Player:

Player player = new Player(p.getString("name"), p.getInt("score"));
playerList.add(player);