# SELECT aus hsqldb mit Parameter



## rafxx (19. Jul 2008)

Hallo....

habe ein Problem. Habe mir in Java eine hsql Datenbank erzeugt. Kann sie auch problemlos mit Werten füllen. Habe aber  nun die schwierigkeit das ich eine SQL Abfrage machen will die dynamisch mit einem Parameter gefüttert wird. Funktioniert leider noch nicht so ganz. vllt seht ihr den Fehler.

Tabelle erzeugen (funktioniert)


```
sql1 ="CREATE TABLE Mitarbeiter(NR INTEGER PRIMARY KEY, MITARBEITERNR INTEGER, NAME VARCHAR(30), VORNAME VARCHAR(30), ABTEILUNG VARCHAR(30), ARBEITSSTUNDEN INTEGER, ARBEITSTAGE INTEGER, UEBERSTUNDEN INTEGER, URLAUBSTAGE INTEGER, URLAUBSTAGE_REST INTEGER);";
stmt.executeQuery(sql1);
```


in Tabelle einfügen (funktioniert)




```
stmt1.executeQuery("INSERT INTO Mitarbeiter VALUES ('" +index+"','"+personalnummer+"','" +name+"','"+vorname+"','" +abteilung+"','" +wochenstunden+"','"+urlaubstage+"','"+null1+"','"+null2+"','"+null3+"')");
```

aus Tabelle mit Parameter auslesen( funktioniert leider nicht)


```
sql1 = "SELECT MITARBEITERNR FROM Mitarbeiter WHERE MITARBEITERNR= '"+numberto+"'";
ResultSet rs = stmt.executeQuery(sql1);
			 
numbercheck = rs.getInt("MITARBEITERNR");
```

numberto ist hier die Variable, hier scheind es dann irgendwie zu hacken.

Danke schon mal für die Mühen und Gruß

Raphael


----------



## SlaterB (19. Jul 2008)

für Integer-Werte brauchst du keine Hochkommata, sollte je nach DB aber auch mit funktionieren,

gib dir doch mal alle Mitarbeiter aus:
sql1 = "SELECT MITARBEITERNR FROM Mitarbeiter'";
ResultSet rs = stmt.executeQuery(sql1);

numbercheck = rs.getInt("MITARBEITERNR");

geht das?

dass du vor dem Zugriff auf das ResultSet erst
rs.next()
aufrufen musst, ist dir bekannt?


----------



## Guest (19. Jul 2008)

Nimm auch PreparedStatement, statt die SQL-Strings so zusammen zu kleistern.


----------

