Hey Leute,
ich habe mein kleines Problem.
Ich habe eine Tabelle von einer Datenbank. Wie die Aussieht könnt ihr im Anhang sehen. Dabei sind alle Integerwerte wie 1 0 2 etc. Fremdschlüsselbeziehungen zu anderen Tabellen.
Ich möchte jetzt jeden Datensatz mit meinem Java Programm einlesen und Speichern.
So sieht mein Momentaner Stand aus:
Was habe ich alles schon versucht? :
Eigentlich bin ich ja kein Freund von direkten Lösungen, aber Aufgrund des enormen Zeitmangels im Moment wäre es toll wenn jemand schon fertigen Beispiel Code hat den ich nur noch an mein Beispiel umschreiben muss und der dann Funktioniert.
Ich weiß nicht ob euch das was ihr da an Quellcode seht reicht. Falls nicht schreibt einfach was Unklar ist
Achso hier noch die Exception:
Zeile 83 in der Methode loadKurs wäre bei dem hier die Zeile 18
Danke
LG JumpFrog
PS: über die Vorteilhafte und gute Java Programmierung brauchen wir glaube ich nicht reden. Den das ist nur Prüfungsvorleistung, dabei spielt es keine Rolle wie es am ende Implementiert ist und ob da auch auf gute Performance geachtet wurde. Es soll einfach nur die Kriterien erfüllen.
ich habe mein kleines Problem.
Ich habe eine Tabelle von einer Datenbank. Wie die Aussieht könnt ihr im Anhang sehen. Dabei sind alle Integerwerte wie 1 0 2 etc. Fremdschlüsselbeziehungen zu anderen Tabellen.
Ich möchte jetzt jeden Datensatz mit meinem Java Programm einlesen und Speichern.
So sieht mein Momentaner Stand aus:
Code:
public void loadKurs() {
try {
Statement stmt = con.createStatement();
int i = 1;
ResultSet rs = stmt.executeQuery("SELECT * FROM Kurs");
Connection con2 = connection.createConnection();
Statement stmt2 = con2.createStatement();
ResultSet rs2;
while (rs.next()) {
System.out.println(rs.getString(1)+ " - " + rs.getString(2));
KursInfo kurs = new KursInfo();
kurs.setKursID(i - 1);
rs2 = stmt2.executeQuery("SELECT Name FROM Typ WHERE "
+ rs.getInt(2) + "= TypID");
kurs.setTyp(rs2.getString(2));
System.out.println("SELECT Typ FROM Zyklus WHERE "
+ "ZyklusID = " + rs.getInt(3));
rs2 = stmt2.executeQuery("SELECT Typ FROM Zyklus WHERE "
+ "ZyklusID = " + rs.getInt(3));
System.out.println(rs2.getString(1));
kurs.setZyklus(rs2.getString(1));
rs2 = stmt2.executeQuery("SELECT Typ FROM Wiederholung WHERE "
+ rs.getInt(4) + "= Wiederholung");
kurs.setWiederholung(rs2.getString(1));
rs2 = stmt2.executeQuery("SELECT Name FROM Wochentag WHERE "
+ rs.getInt(5) + "= WochentagID");
kurs.setWochentag(rs2.getString(1));
rs2 = stmt2.executeQuery("SELECT Von FROM Time WHERE "
+ rs.getInt(6) + "= TimeID");
kurs.setTimeVon(rs2.getString(1));
kurs.setTimeBis(rs2.getString(2));
rs2 = stmt2.executeQuery("SELECT Name FROM Modul WHERE "
+ rs.getInt(7) + "= ModulID");
kurs.setModulID(rs.getString(7));
rs2 = stmt2
.executeQuery("SELECT Kurzbeschreibung FROM Aufgaben WHERE "
+ rs.getInt(8) + "= AufgabenID");
kurs.setHaus(rs.getString(8));
kurs.setZimmer(rs.getInt(9));
kurse.put(kurs.getKursID(), kurs);
}
} catch (Exception e) {
e.printStackTrace();
}
}
Was habe ich alles schon versucht? :
- 2 Abfragen über 1 con Objekt
- 1 Abfrage über 1 Con objekt und neue Abfrage über 2 Con Objekt
Eigentlich bin ich ja kein Freund von direkten Lösungen, aber Aufgrund des enormen Zeitmangels im Moment wäre es toll wenn jemand schon fertigen Beispiel Code hat den ich nur noch an mein Beispiel umschreiben muss und der dann Funktioniert.
Ich weiß nicht ob euch das was ihr da an Quellcode seht reicht. Falls nicht schreibt einfach was Unklar ist

Achso hier noch die Exception:
com.microsoft.sqlserver.jdbc.SQLServerException: Das Resultset verfügt über keine aktuelle Zeile.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyResultSetHasCurrentRow(SQLServerResultSet.java:456)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getterGetColumn(SQLServerResultSet.java:1946)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:1981)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:1966)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getString(SQLServerResultSet.java:2291)
at de.fh.zwickau.querys.Kurs.loadKurs(Kurs.java:83)
at de.fh.zwickau.querys.Kurs.<init>(Kurs.java:35)
at de.fh.zwickau.Start.startup(Start.java:70)
at de.fh.zwickau.Start.<init>(Start.java:39)
at de.fh.zwickau.Start.<clinit>(Start.java:24)
Zeile 83 in der Methode loadKurs wäre bei dem hier die Zeile 18
Danke
LG JumpFrog
PS: über die Vorteilhafte und gute Java Programmierung brauchen wir glaube ich nicht reden. Den das ist nur Prüfungsvorleistung, dabei spielt es keine Rolle wie es am ende Implementiert ist und ob da auch auf gute Performance geachtet wurde. Es soll einfach nur die Kriterien erfüllen.