Рейтинг 3 из 5 звёзд

Auto2:

import java.sql.*;

public class Vorlage2 {
public static void main(String[] args) throws SQLException {
Driver treiber = null;
Connection verbindung = null;
Statement befehl = null;
ResultSet daten = null;

try {
Class.forName("oracle.jdbc.driver.OracleDriver");
verbindung = DriverManager.getConnection(
"jdbc:oracle:thin:@dbserver2:1521:ora10", "bbsh8abe",
"RKa7zs");
System.out.println("DB Verbindung hergestellt");
befehl = verbindung.createStatement();

//#################################################################################
// Hier die Lösung der Aufgabe einfügen
verbindung.setAutoCommit(false);

System.out.print ("Bitte defektes Auto angeben fnr: ");
int fnralt = Eingabe.readInt();

daten = befehl.executeQuery("Select f.fnr, f.beschreibung, f.preis from Fahrzeuge f Where not EXISTS (Select v.fnr from vermietung v where f.fnr = v.fnr)");

if (!daten.next()) {

System.out.println("Keine Ersatzfahrzeuge vorhanden!");
daten = befehl.executeQuery("Select k.kname from Kunden k inner join Vermietung v on k.knr = v.knr where f.fnr = " + fnralt);

if (daten.next()) {

System.out.println(daten.getString(1));
int anzahl = befehl.executeUpdate("delete from vermietung where fnr = " + fnralt);
}
}
else {
int fnrneu = daten.getInt(1);

do {
System.out.println(daten.getString(1) + "\n" + daten.getString(2) + "\n" + daten.getString(3));
} while(daten.next());

int anzahl = befehl.executeUpdate("update vermietung set fnr = " + fnrneu + " where fnr = " + fnralt);
}
daten.close();

verbindung.commit();
//##################################################################################

} catch (SQLException sql) {
verbindung.rollback();
do {
System.out.println(sql.toString());
System.out.println("Fehler: " + sql.getErrorCode());
} while (sql.getNextException() != null);
} catch (Exception e) {
System.out.println("Fehler: " + e);
} finally {
try {
verbindung.close();
} catch (Exception e) {
System.out.println("Fehler: " + e);
}
}
}
}