Hallo,
Ik ben bezig met het schrijven van een queryhandler-klasse in JAVA.
Ik heb een methode selectQuery(query) die aan de resultset de velden opvraagd die teruggegeven worden. Ik wil namelijk dat deze functie een hashtable teruggeeft met als keys de veldnamen van de select-query.
Ik heb de volgende code:
Mijn oorspronkelijke idee was om de hashtable te vullen met arraylists.
Stel dat ik dus een: select id, naam from blaat doe dan wil ik het dus op de volgende manier terug:
result["id"][0] = "1"
result["id"][1] = "2"
etc.
result["naam"][0] = "Jan"
result["naam"][1] = "Piet"
etc.
Het probleem is alleen dat de hashtable in 1 keer gevuld wil worden met een arraylist en ik heb op dat moment de volledige arraylist nog niet. Ik heb al allerlei dingen geprobeerd, maar zit nu toch echt vast. Het moet wel kunnen lijkt mij, want ik heb precies hetzelfde al eens geschreven in PHP....
Ik hoop dat ik wat nuttige feedback krijg, want ik ben helemaal flauw van dat verschrikkelijke type-gezeik.... (ff frustraties kwijt raken)
Ik ben bezig met het schrijven van een queryhandler-klasse in JAVA.
Ik heb een methode selectQuery(query) die aan de resultset de velden opvraagd die teruggegeven worden. Ik wil namelijk dat deze functie een hashtable teruggeeft met als keys de veldnamen van de select-query.
Ik heb de volgende code:
Java:
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
35
36
| // voert de databasevraag uit protected void selectQuery(String query) { // afvangen die fouten! try { ResultSet res = this.stmt.executeQuery(query); // metainformatie ophalen ResultSetMetaData rmd = res.getMetaData(); // aantal geretourneerde velden vastleggen this.aantalVelden = rmd.getColumnCount(); this.affectedRows = 0; while (res.next()) { for (int teller = 0; teller < this.aantalVelden; teller++) { // waarde van het veld String waarde = res.getObject(teller + 1).toString(); String kolomNaam = rmd.getColumnName(teller + 1); // aargh, begin nietmeerbegrijpmodus // waarde toevoegen aan Hashtable (Associatieve array) this.result[teller].put(kolomNaam, waarde); // einde nietmeerbegrijpmodus } this.affectedRows++; } System.out.println("aantal: "+this.affectedRows); } catch (SQLException E) { System.out.println("SQLException: " + E.getMessage()); System.out.println("SQLState: " + E.getSQLState()); System.out.println("VendorError: " + E.getErrorCode()); } } |
Mijn oorspronkelijke idee was om de hashtable te vullen met arraylists.
Stel dat ik dus een: select id, naam from blaat doe dan wil ik het dus op de volgende manier terug:
result["id"][0] = "1"
result["id"][1] = "2"
etc.
result["naam"][0] = "Jan"
result["naam"][1] = "Piet"
etc.
Het probleem is alleen dat de hashtable in 1 keer gevuld wil worden met een arraylist en ik heb op dat moment de volledige arraylist nog niet. Ik heb al allerlei dingen geprobeerd, maar zit nu toch echt vast. Het moet wel kunnen lijkt mij, want ik heb precies hetzelfde al eens geschreven in PHP....
Ik hoop dat ik wat nuttige feedback krijg, want ik ben helemaal flauw van dat verschrikkelijke type-gezeik.... (ff frustraties kwijt raken)
[ Voor 5% gewijzigd door Glimi op 05-05-2003 18:13 ]