# Netzwerkverkehroptimierung [mySQL SELECT]



## b0312 (29. Dez 2011)

Guten Morgen an alle!

Folgende Frage:

Ich hab einen Client und in den MyBatis implementiert.
Über einen SQL SELCT Befehl hole ich mir die benötigten Daten.

Die benötigten Daten haben eine Spalte "status" die folgende Werte haben kann
-"neu"
-"aktuell"
-"archiv"

Insgesamt sind es 3000 Datensätze.

Was ist eurer Meinung nach besser ?

1. 3 verschiedene SQL SELECT Befehle ausführen und das Ergebniss in eine List schreiben
2. 1 Select Befehl ausführen, den Status mitliefern und dann im Programm über Sortieralgorithmen den Datensatz mit dem jeweiligen Status in eine List schreiben. 

greeTz* B0312


----------



## eRaaaa (29. Dez 2011)

Was willst du denn überhaupt machen (wieso vergessen dass so viele mal ausführlich zu erläutern? :-( )
Du willst verschiedene Listen oder wie? Wozu?
Sortieren kannst du auch mit dem SQL Befehl, das kannst du dir also in deinem Programm ersparen.


----------



## b0312 (29. Dez 2011)

Hallo,
ich möchte das ResultSet aus dem SELECT Befehl in eine List schreiben. 
Diese List ist dann für meine TreeTable in der GUI

im Endeffekt sind es dann 3 verschieden Listen "neu","aktuell","archiv" so gesehen dann auch 3 TreeTables. 

in Select kann man sortieren ja, die Frage ist nur was ressourcenschonender und performanter ist.

3 Select Befehle übers Netzwerk oder 1 Select Befehl und die Aufteilung in 3 Listen im Programm ?


----------



## eRaaaa (29. Dez 2011)

Ich frage mal anders....was würdest du tun wenn du jetzt die Anforderung erhältst, dass du 10 verschiedene Status anstatt 3 hast?! Würdest du dann 10 SQL Befehle absetzen und 10 Listen verwalten?

Ich muss gestehen, dass ich mit TreeTable noch nicht viel gemacht habe und mich da nicht wirklich auskenne, aber kannst du dir da nicht eher ein eigenes TreeTableModel schreiben, welches du nur eine Liste übergibst und dann eben die Aufsplittung (fast automatisch) macht ohne viel Code?!


----------



## b0312 (29. Dez 2011)

Die Listen brauche ich sowieso nur temporär. Ich habe eh eine Klasse MyTreeTableModel.java die von AbstractTreeTableModel erbt. Die Liste ist deshalb praktisch weil sie von einem von mir definierten Typ ist.


```
status = Vorgang.SELECTNEW; // Neue Aufträge z.B.
MyBatis db = new MyBatis; // MyBatis -> Kommunikation zur DB
List<Auftrag> auftraege;
auftraege = db.getAuftraege(status);
```

Dann kann ich ins TreeTableModel meine Daten per Schleife eintragen:


```
for(Auftrag auftrag : auftraege){
sAuftragID = auftrag.getAuftragID(); //Auftragsnummer
... // Dann der ganze Kram mit TreeTable (Node, getChildren etc.)
...
}
```

und schon habe ich mein TreeTableModel und muss es nur mehr an die TreeTable übergeben

- Hier stelle ich mir dann die Frage ob es klüger wäre 1 SELECT Befehl sortiert nach statusen ODER
- für jeden Status 1 SELECT Befehl

Im GUI brauche ich dann 3 verschiedene Tabellen "neu","aktuell","archiv" die ich in TabbedPanes eingebaut hab um zwischen den Tabellen zu wechseln


----------



## ARadauer (29. Dez 2011)

Ich würd ein Query machen


----------

