-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMySqlTabelle.java
More file actions
153 lines (127 loc) · 3.9 KB
/
Copy pathMySqlTabelle.java
File metadata and controls
153 lines (127 loc) · 3.9 KB
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
import java.util.ArrayList;
/**
* Klasse MySqlTabelle repraesentiert eine Ergebnis-Tabelle nach ener SQL-Abfrage.
* Die Zeilen- und Spalten-Nummern beginnen bei 0.
* Zeile 0 ist die Ueberschrift.
* Alle Werte sind als String gespeichert und werden als String ausgegeben.
* Der Benutzer muss die zurueck erhaltenen Werte bei Bedarf SELBST wieder zum richtigen Typ casten !!!
*
* @author mike ganshorn, manuel hengge
*
* @version 1.1 (2017-04-10)
*/
public class MySqlTabelle
{
private int anzahlZeilen;
private int anzahlSpalten;
private ArrayList<String> ueberschriften;
private ArrayList<MySqlDatensatz> zeilen;
/**
* Konstruktor der Klasse MySqlTabelle.
*/
public MySqlTabelle()
{
this.anzahlZeilen = 0;
this.anzahlSpalten = 0;
this.zeilen = new ArrayList<MySqlDatensatz>();
this.ueberschriften = new ArrayList<String>();
}
/**
* Fuegt der Tabelle einen weiteren Datensatz hinzu
*
* @param datensatz Referenz auf das neue MySqlDatensatz-Objekt
*/
public void datensatzHinzufuegen( MySqlDatensatz datensatz )
{
this.zeilen.add( datensatz );
this.anzahlZeilen++;
this.anzahlSpalten = this.zeilen.get(0).nenneAnzahlAttribute();
}
/**
* Fuegt einen neuen Attribut-Bezeichner fuer eine weitere Spalte in die ArrayList der Ueberschriften hinzu.
*
* @param attribut Eine neue Spaltenueberschrift
*/
public void attributHinzufuegen( String attribut )
{
this.ueberschriften.add( attribut );
}
/**
* Gibt alle Spaltenbezeichnungen als einzelnen String zurueck.
*
* @return Alle Spalteueberschriften als ein TAB-separierter String
*/
public String nenneSpaltenbezeichnungen()
{
String spaltenbezeichnungen = "";
for ( int i = 0 ; i<ueberschriften.size() ; i++ )
{
spaltenbezeichnungen = spaltenbezeichnungen + ueberschriften.get(i) + "\t";
}
return spaltenbezeichnungen;
}
/**
* Gibt den Zellwert einer bestimmten Zelle zurueck.
*
* @param zeile Die Nummer der Zeile (Uberschrift hat Nummer 0)
*
* @param spalte Die Nummer der Spalte (beginnend bei 0)
*
* @return Zellwert an dieser Stelle in der Tabelle
*/
public String nenneZellwert( int zeile , int spalte )
{
if ( zeile >= 0 && zeile <= this.anzahlZeilen && spalte >= 0 && spalte <= this.anzahlSpalten )
{
return this.zeilen.get(zeile).nenneAttributWert(spalte);
}
else
{
return "NULL";
}
}
/**
* Gibt die Anzahl an Datensaetzen zurueck.
*
* @return Anzahl an Datensaetzen der Tabelle (0 , wenn leer, -1 wenn SQL-Statement "verunglueckt")
*/
public int nenneAnzahlDatensaetze()
{
return this.anzahlZeilen;
}
/**
* Nennt die Anzahl der Zeilen dieser Tabelle.
*
* @return Anzahl der Zeilen dieser Tabelle. Die Ueberschrift ist Zeile 1.
* Eine Tabelle, die ein leeres Resultat zurueck liefert, hat also die Laenge 1!
*/
public int nenneAnzahlZeilen()
{
return this.anzahlZeilen;
}
/**
* Nennt die Anzahl der Spalten dieser Tabelle.
*
* @return Anzahl der Spalten dieser Tabelle
*/
public int nenneAnzahlSpalten()
{
if ( this.anzahlZeilen != 0 )
{
return this.zeilen.get(0).nenneAnzahlAttribute();
}
else
{
return 0;
}
}
/**
* Gibt die ArrayList von Datensaetzen zurück
*
* @return ArrayList mit MySqlDatensatz-Objekten
*/
public ArrayList<MySqlDatensatz> nenneZeilen()
{
return this.zeilen;
}
}