2016-01-04 33 views
2

我想從SQL數據庫中顯示文本區域中的整列,但在TextArea中只顯示最後一行數據。解決辦法是什麼?如何在文本區域顯示整列?

try 
{ 
    Class.forName("oracle.jdbc.driver.OracleDriver"); 
        con=DriverManager.getConnection("jdbc:oracle:oci8:@localhost:1521:XE","tushar","yahoo123"); 

    st=con.createStatement(); 

    rs=st.executeQuery("select CUSTOMER_ID from demo_customers"); 
     while(rs.next()) 
     { 

     String CUSTOMER_ID = rs.getString("CUSTOMER_ID");     

     t2.setText("ID: " + CUSTOMER_ID); //JTextArea t2=new TextArea(); 

     } 

    st.close(); 
    con.close(); 
    } 
catch(Exception e) 
{ 

    System.out.println(e.getMessage());   
} 
+2

每次通話時間'setText',要重設文本區域的內容。看起來你正在嘗試使用它作爲一種附加的方法。相反,使用'StringBuilder'來構建內容,然後調用'setText'一次。 – rmlan

+3

'setText(...)'代替'TextArea'的文本,你需要添加新的值(例如:'t2.append(「ID:」+ CUSTOMER_ID);')。 – Titus

回答

3

而不是設置文本爲每行一個新的值,你應該追加新的文本你以前有一個。添加換行符可能是一個好主意,以及:

while(rs.next()) { 
    String CUSTOMER_ID = rs.getString("CUSTOMER_ID");     
    t2.append("ID: " + CUSTOMER_ID+"\n");  
} 
+0

不要使用StringBuilder,這將需要兩倍的內存。一個用於StringBuilder中的數據副本,另一個用於Document中的數據。只需將文本直接附加到文檔。 – camickr

+0

@camickr你是對的 - 對於大桌子會吸。刪除了。 – Jan

+0

(1+)追加:) – camickr