Java方法-以字符串形式返回数据库列的内容

Java方法-以字符串形式返回数据库列的内容,java,scope,Java,Scope,我是Java新手,非常感谢您的帮助!我编写了一个方法,返回数据库中表的内容。该表称为“消息”。 我试图将这个表的内容作为字符串返回给我的方法,这样我就可以在应用程序中显示它 以下是我的方法: public String readData() { try { String query = "select * from messages"; PreparedStatement pstmt = ConnectionBuilder.buildConnection

我是Java新手,非常感谢您的帮助!我编写了一个方法,返回数据库中表的内容。该表称为“消息”。 我试图将这个表的内容作为字符串返回给我的方法,这样我就可以在应用程序中显示它

以下是我的方法:

public String readData() {

    try {
        String query = "select * from messages";
        PreparedStatement pstmt = ConnectionBuilder.buildConnection().prepareStatement(query);
        ResultSet rs = pstmt.executeQuery("select * from messages");
        while (rs.next()){
        String data = rs.getString("MESSAGE");

            System.out.println(data);
        }

    } catch (Exception e) {
        System.out.println(e);
    }
    return data;

}
System.out.println(数据);行正确显示我想要的内容:

Hello!
Hello!
Hello!
Hello!
Hello!
Hello!
hio
hio
hio
Testerrr
但是返回数据;表示数据“无法解析为变量”

我哪里做错了!我试图在方法顶部声明变量,但它仍然返回null:

public String readData() {
    String data = null;
    try {
        String query = "select * from messages";
        PreparedStatement pstmt = ConnectionBuilder.buildConnection().prepareStatement(query);
        ResultSet rs = pstmt.executeQuery("select * from messages");
        while (rs.next()){
        data = rs.getString("MESSAGE");
        }

    } catch (Exception e) {
        System.out.println(e);
    }
    System.out.println(data);
    return data;

}

当您尝试使用数据返回时,
数据
绝对超出范围。我的第一个想法是你应该早点申报,但你说你已经试过了。所以我给你一个选择


您可以放置
返回数据try块末尾的行,并在函数末尾返回空字符串或其他内容。(try块中的返回不会执行的唯一方法是抛出异常,在这种情况下,您不可能拥有有效的数据。)

据我所知,每次结果循环迭代时,它都会覆盖数据值,您可以使用StringBuilder获得所需的输出。以下是我的解决方案

public String readData() {
    StringBuilder str = new StringBuider();
    try {
        String query = "select * from messages";
        PreparedStatement pstmt = ConnectionBuilder.buildConnection().prepareStatement(query);
        ResultSet rs = pstmt.executeQuery("select * from messages");
        while (rs.next()){
        str.append(rs.getString("MESSAGE"));
        }

    } catch (Exception e) {
        System.out.println(e);
    }
    System.out.println(str);
    return str.toString();

}
希望有帮助:)

但是返回数据;表示数据“无法解析为变量”。。。我试图在方法顶部声明变量,但它仍然返回null。这是两个完全不同的问题。