2017-01-26 23 views
0

私はJavaを使い慣れていますので、どんな助力にも感謝します!私はデータベースのテーブルの内容を返すメソッドを書いています。テーブルは「メッセージ」と呼ばれます。 私は、このテーブルの内容を1つの列が私のメソッドによって文字列として返されるようにしようとしています。そのため、アプリケーションでそれを表示できます。ここで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 

しかし、データは「変数に解決できません」と言います

どこが間違っていますか?私は、メソッドの先頭に変数を宣言しようとしたが、それはまだヌルを返して:あなたは返すためにそれを使用しようとすると、

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; 

} 
+0

:)それが役に立てば幸いしかし、戻りデータ;データは "変数に解決できません"と言っています...私はメソッドの先頭に変数を宣言しようとしましたが、まだnull *を返しています。それらは全く別の2つの問題です。 – shmosel

答えて

0

dataは、スコープの外に間違いです。私の最初の考えは、あなたが早くそれを宣言しなければならないということですが、あなたはそれを試みたと言います。だから私はあなたに代案を与えます。

tryブロックの最後にreturn data;行を置き、関数の最後に空の文字列などを返すことができます。 (tryブロックの戻り値が実行されない唯一の方法は、例外がスローされた場合です。その状況で有効なデータがあるとは限りません)。

0

私が理解しているところでは、データ値をオーバーライドします。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(); 

} 

は*

関連する問題