# Erstellen ResultSet und Statement



## Dimax (27. Nov 2018)

Hallo,
ich habe ein kleines Problem,in einer Methode brauche ich sehr viele ResultSets und Statements
und ich glaube da mache ich etwas falsch.

```
ResultSet rs=null;ResultSet rs1=null;ResultSet rs2=null;ResultSet rs3=null;ResultSet rs4=null;ResultSet rs5=null;
ResultSet rs6=null;ResultSet rs7=null;ResultSet rs8=null;ResultSet rs9=null;ResultSet rs10=null;ResultSet rs11=null;
ResultSet rs12=null;ResultSet rs13=null;ResultSet rs14=null;ResultSet rs15=null;ResultSet rs16=null;ResultSet rs17=null;
ResultSet rs18=null;ResultSet rs19=null;ResultSet rs20=null;ResultSet rs21=null;ResultSet rs22=null;
Statement st=null;Statement st1=null;Statement st2=null;Statement st3=null;Statement st4=null;Statement st5=null;
Statement st6=null;Statement st7=null;Statement st8=null;Statement st9=null;Statement st10=null;Statement st11=null;
Statement st12=null;Statement st13=null;Statement st14=null;Statement st15=null;Statement st16=null;Statement st17=null;
Statement st18=null;Statement st19=null;Statement st20=null;Statement st21=null;Statement st22=null;
```
Deswegen auch meine Frage:gibt es irgendein Weg das zu umgehen?


----------



## Robat (27. Nov 2018)

Erklär vielleicht mal was du machen möchtest.


----------



## Dimax (27. Nov 2018)

Ich erstelle in einer jsp page eine Tabelle mit Statistiken,und dafür brauche ich sehr viele Datenbankanfragen.


----------



## Robat (27. Nov 2018)

Dann reicht dir doch aber ein ResultSet mit einem Statement.. Es ändert sich ja nur die Query


----------



## Dimax (27. Nov 2018)

Robat hat gesagt.:


> Es ändert sich ja nur die Query


und nach jeder Abfrage einfach wieder auf null setzen oder auch nicht nötig?


----------



## mihe7 (27. Nov 2018)

Dimax hat gesagt.:


> und ich glaube da mache ich etwas falsch.


Das glaub ich allerdings auch. 



Dimax hat gesagt.:


> Ich erstelle in einer jsp page eine Tabelle mit Statistiken,und dafür brauche ich sehr viele Datenbankanfragen.


1. Was hat die JSP-Seite damit zu tun? 
2. Wie sehen die Abfragen aus? Unterscheiden sich diese in den Parametern oder nur in den Parameterwerten oder in beidem?


----------



## Robat (27. Nov 2018)

Werden denn alle Abfragen in der selben Methode behandelt?


----------



## mihe7 (27. Nov 2018)

Robat hat gesagt.:


> Werden denn alle Abfragen in der selben Methode behandelt?


Ich befürchte ja, dass diese alle in der JSP-Seite stehen *würg*


----------



## Robat (27. Nov 2018)

mihe7 hat gesagt.:


> Ich befürchte ja, dass diese alle in der JSP-Seite stehen *würg*


Sowas vermute ich ehrlich gesagt auch


----------



## Dimax (27. Nov 2018)

und so fangen alle wieder die Neulinge zu diskriminieren!


----------



## Robat (27. Nov 2018)

@Dimax soll keine Diskriminierung sein. Sieh es eher als Verbesserungsvorschlag - falls es überhaupt der Fall sein sollte.
Verrat uns am Besten mal deine aktuelle Struktur - also wo die Queries abgesetzt werden (sollen) und wie du dir das vorgestellt hast


----------



## mihe7 (27. Nov 2018)

Dimax hat gesagt.:


> und so fangen alle wieder die Neulinge zu diskriminieren!


Pffff...


----------



## Dimax (27. Nov 2018)

mihe7 hat gesagt.:


> 2. Wie sehen die Abfragen aus? Unterscheiden sich diese in den Parametern oder nur in den Parameterwerten oder in beidem?


2 von 40 Beispiele
1):

```
String getMaxMacro="select programm.programm,macro_daten.anzahl_macro from programm join macro_daten "+
        "on programm.programm_id=macro_daten.programm_id where macro_daten.anzahl_macro=(select max(macro_daten.anzahl_macro)from macro_daten);";
```
2):

```
getSumProc="SELECT count(step_type) FROM sasco.step_daten where step_type like 'PROC%'";
```


----------



## mihe7 (27. Nov 2018)

Die Info ist noch immer etwas dürftig (s. Kommentare von @Robat), um da jetzt etwas zu empfehlen. Wir müssen schon eine gewisse Vorstellung davon haben, was da eigentlich passieren soll. Ansonsten kann man nur allgemeine Ratschläge geben: teile den Spaß auf Methoden/Objekte auf.


----------



## Dimax (27. Nov 2018)

Robat hat gesagt.:


> Verrat uns am Besten mal deine aktuelle Struktur - also wo die Queries abgesetzt werden (sollen) und wie du dir das vorgestellt hast


Auf der jsp wird die Tabelle gezeichnet (siehe Foto)
Da ich grade in der Entwicklung bin sind alle Methoden und Datenbankanfragen natürlich ausgelagert in ein java.file
die ich Später in jsp einholen möchte um die lade Zeiten zu verkürzen.


----------



## Robat (27. Nov 2018)

Dimax hat gesagt.:


> sind alle Methoden und Datenbankanfragen natürlich ausgelagert


Das klingt fürs erste doch erstmal gar nicht so schlecht.
Jetzt versteh ich eins aber noch nicht ganz: Wenn du das in versch. Methoden auslagerst - wozu brauchst du dann so viele Statements / ResultSets? Legst du diese als lokale Variable an oder als Member der Klasse? Gib vielleicht mal ein kleinen Einblick in die Datenbank-Klasse



Dimax hat gesagt.:


> die ich Später in jsp einholen möchte um die lade Zeiten zu verkürzen.


Off-Topic: Was für Ladezeiten möchtest du verkürzen?


----------



## mihe7 (27. Nov 2018)

Dimax hat gesagt.:


> die ich Später in jsp einholen möchte um die lade Zeiten zu verkürzen.


NEIIIIN. 

Einmal abgesehen davon, dass Deine JSP damit katastrophal wird, verkürzt Du damit gar nix.


----------



## Dimax (27. Nov 2018)

Robat hat gesagt.:


> Legst du diese als lokale Variable an oder als Member der Klasse?


Ja ,dass sind Lokale Variablen die ich in die Tabelle einstelle:

```
+"<tr><td style=\"text-align:left\"><b>Es gibt durchschnittlich BLL( avgBLL )</b></td><td>"+avgBlankLines+"</td></tr>"
```



Robat hat gesagt.:


> Was für Ladezeiten möchtest du verkürzen?


Ist erstmals eine Vermutung,ehrlich gesagt bin in der Entwicklung und zu Optimierung bin noch nicht gekommen ,aber logisch nachzudenken soll ich ja die Methoden dann importieren und wenn ich 20 java.file importiere das frisst ja Zeit.


----------



## Dimax (27. Nov 2018)

Dimax hat gesagt.:


> Da ich grade in der Entwicklung bin .concat.reverse(sind alle Methoden und Datenbankanfragen natürlich ausgelagert in ein java.file)





mihe7 hat gesagt.:


> NEIIIIN.


----------



## Robat (27. Nov 2018)

Dimax hat gesagt.:


> Ja ,dass sind Lokale Variablen die ich in die Tabelle einstelle:


Ich meine eigentlich die ResultSet und Statement Variablen 



Dimax hat gesagt.:


> und zu Optimierung bin noch nicht gekommen


Dazu sag ich nur: 3 rules of Optimization 
1. Don’t
2. Don’t yet
3. Profile before optimizing



Dimax hat gesagt.:


> wenn ich 20 java.file importiere das frisst ja Zeit.


Nicht wirklich, nein


----------



## Dimax (27. Nov 2018)

Robat hat gesagt.:


> 3. Profile before optimizing


Das was ich hier Frage Heute ist nur eine kleine Entspannung-Pause zwischen mehreren Problemen.
Das grösste Problem bei diesem Programm ist :da gibt es eine Sql-Funktion die mir ständig Exception wirft.
Und ich glaube da hilft mir keiner,deswegen ab und zu gehe ich zu Optimierung und Weiterentwicklung.


----------



## mrBrown (27. Nov 2018)

Ich wiederhole mich zwar: Aber Grundlagen drauf haben, bevor man mit JavaEE anfängt, ist ratsam...


Dimax hat gesagt.:


> gehe ich zu Optimierung


Und bevor man damit anfängt, sind die Grundlagen noch viel wichtiger...



Dimax hat gesagt.:


> Das grösste Problem bei diesem Programm ist :da gibt es eine Sql-Funktion die mir ständig Exception wirft.
> Und ich glaube da hilft mir keiner,


Naja, zeig doch einfach mal das Problem?


----------



## Dimax (27. Nov 2018)

Ja..Danke für die Hilfe Jungs,habe alle Results und Statements gelöscht.Funktioniert.


----------



## mihe7 (27. Nov 2018)

Dimax hat gesagt.:


> Methoden dann importieren und wenn ich 20 java.file importiere das frisst ja Zeit


Ein JSP wird zu einem Servlet übersetzt und kompiliert. Wenn Du die Seite aufrufst, wird da nix "importiert".

Zum Problem: Deine Statistik besteht aus zwei Spalten. Bezeichnung der Auswertung und das Ergebnis. Das Ergebnis besteht wiederum aus max. zwei Infos: 1. einer Zahl und 2. ggf. einem Programmnamen.

Du kannst also hergehen und eine Liste von SELECTs schreiben, die alle über ein und dieselbe Methode ausgeführt werden.


----------



## Dimax (27. Nov 2018)

mrBrown hat gesagt.:


> Und bevor man damit anfängt, sind die Grundlagen noch viel wichtiger..


Da hast du Recht,soll ich meinem Chef sagen,Tasche packen und von Sozialhilfe meine Kinder versorgen))


----------



## mihe7 (27. Nov 2018)

Vielleicht solltest Du Deinem Chef sagen, dass - wenn er was neues von Dir will - Dich evtl. erstmal auf eine Fortbildung schickt?

Was ist jetzt mit dem SELECT und der Exception?


----------



## Dimax (27. Nov 2018)

mrBrown hat gesagt.:


> Naja, zeig doch einfach mal das Problem?


Vielen Dank für die Bereitschaft zur Hilfe ..Das ist eine Funktion die in SAS-Programmen nach macro-variablen sucht und die dann in die Datenbank speichert (ist sehr gross) die schmeist mir duplicate primary key ,also wen 2 solche variablen in eine zeile stehen und nur durch einen Punkt von einander getrennt sind.


----------



## Dimax (27. Nov 2018)

mihe7 hat gesagt.:


> mit dem SELECT


ein guter Vorschlag  mihe bin grade am Überlegen..


----------



## mihe7 (27. Nov 2018)

Äh, ich meinte eigentlich den fehlerhaften SELECT


----------



## Dimax (27. Nov 2018)

mihe7 hat gesagt.:


> ch den fehlerhaften SELECT


ne..denn können wir nicht reparieren,dazu muss hier jemand sich mit sas auskennen meine DB zum testen haben und  und..also zu den select's..ich habe da nur reine selects ohne irgendwelchen lokalen Variablen ,dann brauche ich ja keine PreparedStatement..einfaches geht auch?


----------



## mihe7 (27. Nov 2018)

Dimax hat gesagt.:


> selects ohne irgendwelchen lokalen Variablen ,dann brauche ich ja keine PreparedStatement..einfaches geht auch?


Ja.


----------

