Witam,
piszę małą aplikację bazodanową z GUI w javie i natknąłem się na pierwsze schody.
Siedzę już przy tym dosyć sporo i nie mogę sobie poradzić. Przechodzę do konkretów, otóż kiedy pobieram dane z bazy danych i chcę wszystkie dane z wybranej kategorii wyświetlić w Textarea, wyświetla mi się tylko 1 rekord. Przesyłam kod:
public class Projekt
{
private JFrame frame;
public JTextArea produkty = new JTextArea(20,30);
public Projekt()
{
initialize();
}
private void initialize()
{
frame = new JFrame();
frame.setBounds(100, 100, 544, 361);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JRadioButton hp = new JRadioButton("HP");
hp.setBounds(16, 95, 109, 23);
hp.addActionListener(new WyswietlanieHP());
frame.getContentPane().add(hp);
JPanel panel = new JPanel();
panel.setBounds(97, 66, 409, 238);
frame.getContentPane().add(panel);
panel.add(produkty);
produkty.setLineWrap(true);
}
class WyswietlanieHP implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
Connection con = null;
Statement st = null;
ResultSet rs = null;
PreparedStatement pst = null;
String url = "jdbc:mysql://localhost:3306/pab2";
String user = "root";
String password = "xxx";
con = DriverManager.getConnection(url, user, password);
pst = con.prepareStatement("SELECT * FROM produkty WHERE marka='"+ "HP" +"'");
rs = pst.executeQuery();
while (rs.next())
{
// próbowałem na rózny sposób modyfikować tę pętlę while ale nie daję rady, zapytanie jest napewno dobre
//myslę że źle wyswietlam te dane i pobierane rekordy sie nadpisują na siebie i dlatego mam tylko 1 rekord z bazy a nie wszystkie
//moze sie mylę, nie wiem
produkty.setText(" Marka: "+rs.getString(2)+" \n Model: "+rs.getString(3)+" \n Cena: "+rs.getString(4)+"zl \n Parametry: "+rs.getString(5)+"\n"+"\n");
}
}
}
}
Z góry dziękuję za pomoc.
Pozdrawiam
Edek