Toon posts:

[Mysql/Java]Output tabel in een Array plaatsen.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig een proggie te schrijven in Java, dat communiceert met een Mysql database. Tot nu toe gaat alles goed (data in een tabel toevoegen, opvragen etc) maar ik zit met een probleem. Ik heb een methode gemaakt die alle kolommen van een tabel opvraagt en de inhoud ervan weergeeft. Dit is de
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
void listPatients()  {
            
Connection con = null;
Statement st = null;
ResultSet rs = null;

         try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            con = DriverManager.getConnection("jdbc:mysql:///patient","", "");
                st = con.createStatement();
            rs = st.executeQuery("SELECT id, name, sex FROM patient_data");

        while(rs.next()) {
                      String userId = rs.getString(1);
                      String userName = rs.getString(2);
                      String userSex = rs.getString(3);
                      System.out.println(userId + ". " + userName + ", " +
                                                                userSex + " ");
                    }
                 } catch (Exception e) {
                            System.err.println("Error: " +e.getMessage());
                } finally {
      
                    try {
                        if(rs != null)
                            rs.close();
                        if(st != null)
                            st.close();
                        if(con != null)
                            con.close();
                               }                          
                                catch (SQLException e) {
                                }
    }


Dit is de output ervan. Maar dit wordt dus weergegeven in het ms-dos schermpje, maar ik zou die data graag ik een tekstvak willen zetten, dus 3 kolommen met een kolom waar de id nummers inkomen, en de andere dus de naam en het geslacht. Nu dacht ik om de gegevens in een array te stoppen en die dan in de tekstvak te prakken. Maar dit lukt me dus niet. Ik heb eerst dit gedaan
code:
1
2
3
 String[] getPatient(int id)     {
                
                String[] Output = new String[3];

zodat ie als output een array geeft. En dan zorgen dat de bijvoorbeeld de id nummers in de array worden gestopt met dit
code:
1
2
int userId = rs.getInt(1);
Output[0] = "" + userId;


Nu geeft ie dus steeds het laatste nummer weer als ik dit in een textfield zet. Ik moet dus de id nummers van elkaar zien te scheiden en die apart weergeven. Zou iemand me hier verder mee kunnen helpen? Ik zat te denken aan een herhalingsopdracht te maken en dan steeds id nummers in de array te stoppen, maar ik heb geen idee hoe ik dat aan moet pakken.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Probeer eens een 2-dimensionaal array (of een andere lijstvorm met twee dimensies).

Trouwens, je code lijnt niet goed uit en is daardoor lastig leesbaar. Kun je daar even naar kijken?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04-2025
Ik begrijp dat je je uitvoer netjes in een GUI wil zetten; waarom gebruik je geen JTable (van Swing) om je data weer te geven? Die is daar bij uitstek voor bedoeld.

Om al jouw data in een opslagstructuur te stoppen, adviseer je om een klasse Patient (ofzo) te maken, met netjes attributen voor id, geslacht en naam. Voor iedere regel in je resultset maak je dan een Patient-object en die stop je in een Arraylist of Vector (of wathever collection-type voor jouw handig is). Jouw regels zijn immers geen lijsten van onsamenhangende Strings --> het zijn Partienten, en dus ga je met patient-objetcen aan de gang. Ook niet alle data over die patient is een String; het id is een bijvoobeeld int dus sla die ook zo op.

Je zet je code al tussen code-tags, maar ook ik heb iets te zeiken daarover ;) : maak van [ code ] eens [ code = java ] (zonder spaties ertussen natuurlijk) ...

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'