java:显示数据库中的元素

时间:2016-05-26 09:36:02

标签: java sql

我写了一些java代码来显示数据库,当我运行代码时它只给我数据库的最后一个元素,但我想显示表的所有元素

代码:

public String RecupererPuissance() {
    try {
        Connection con =  myDbvoiture.getConnection();
        String queryPattern ="select Power from bd_voiture";
        PreparedStatement pstmt =  con.prepareStatement(queryPattern);
        ResultSet rs = pstmt.executeQuery();
        while (rs.next()) {
            puissance=rs.getString("Power");
            System.out.println(puissance);
        }
    } catch (SQLException ex) {
        System.err.println(ex.getMessage());
    }
    return puissance;
}

我该怎么办?谁能帮助我显示所有值? 谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

我认为问题在于您的代码每次获得下一个元素时都会覆盖puissance的值。仅返回最后一个值。您应该将结果放入列表并返回整个列表:

public List<String> RecupererPuissance() {
    List<String> puissances = new ArrayList<String>();
    try {
        Connection con =  myDbvoiture.getConnection();
        String queryPattern ="select Power from bd_voiture";
        PreparedStatement pstmt =  con.prepareStatement(queryPattern);
        ResultSet rs = pstmt.executeQuery();
        while (rs.next()) {
            puissance = rs.getString("Power");
            puissances.add(puissance);
            System.out.println(puissance);
        }
    } catch (SQLException ex) {
        System.err.println(ex.getMessage());
    }
    return puissances;
}

答案 1 :(得分:0)

public String RecupererPuissance() {
    try {
        Connection con =  myDbvoiture.getConnection();
        String queryPattern ="select Power from bd_voiture";
        PreparedStatement pstmt =  con.prepareStatement(queryPattern);
        ResultSet rs = pstmt.executeQuery();
        rs.first();
        int count=0;
        while (rs.next()) {
        System.out.println("count = "+count);
        count+=1;
            puissance=rs.getString("Power");
            System.out.println(puissance);
        }
    } catch (SQLException ex) {
        System.err.println(ex.getMessage());
    }
    return puissance;
}

如果您看到计数仅打印一次:

这意味着Power列中只有1行 你可能在代码中引用了错误的列