Hallo,
Ich habe ein Servlet erstellt, welches Datenträger (CD/DVDs) erfasst.
Meine Aufgabe ist es nun, eine Datenbank einzubinden.
Das Laden funktioniert soweit auch wunderbar.
Einzige Problem ist das speichern in eine Datenbank.
Ich möchte, das die Datenbank nur aktualisiert wird.
Bisher war es immer so, das die Datensätze bei erneutem abspeichern mehrfach in der Datenbank vorhanden sind. Meine Lösung war bisher das ich vor dem Speichern meine Datenbank immer wieder lösche. Nur wird das in der Realität ja nicht gemacht.
Welche Möglichkeit gibt es, meine Datensätze nur zu aktualisieren?
Bisher sieht meine Methode zum schreiben in eine Datenbank folgendermaßen aus:
Löschen der Datenbank:
speichern der Datenbank:
mit dem Update-SQL befehl (Auskommentiert) hat nichts funktioniert, führe zu einem Absturz des Browsers/Eclipse
Programmiere mit Eclipse Indigo EE und Java 7
Vielen Dank für die Hilfe im Voraus
Ich habe ein Servlet erstellt, welches Datenträger (CD/DVDs) erfasst.
Meine Aufgabe ist es nun, eine Datenbank einzubinden.
Das Laden funktioniert soweit auch wunderbar.
Einzige Problem ist das speichern in eine Datenbank.
Ich möchte, das die Datenbank nur aktualisiert wird.
Bisher war es immer so, das die Datensätze bei erneutem abspeichern mehrfach in der Datenbank vorhanden sind. Meine Lösung war bisher das ich vor dem Speichern meine Datenbank immer wieder lösche. Nur wird das in der Realität ja nicht gemacht.
Welche Möglichkeit gibt es, meine Datensätze nur zu aktualisieren?
Bisher sieht meine Methode zum schreiben in eine Datenbank folgendermaßen aus:
Löschen der Datenbank:
Java:
public static void cleanDatabase(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
Connection connect = null; //Verbindung erstellt und als null intialisiert
Statement statm = null; //Aussage objekt
ResultSet res = null; //Ergebnis Obejekt wird erstellt
try
{
connect = getConnection(); // Connection initalisierung
statm = connect.createStatement(); //Statement initalisierung
String sql = "DELETE sh_regal";
statm.executeUpdate(sql);
saveDatabase(request, response);
}
catch (ClassNotFoundException e)
{
handleException(e, "DB driver class not found"); //Exception Handling
}
catch (SQLException e)
{
handleException(e);
}
catch (NullPointerException npe)
{
handleException(npe);
}
finally
{
closeConnection(connect, statm, res);
}
}
speichern der Datenbank:
Java:
public static void saveDatabase(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
PrintWriter out = response.getWriter();
Connection connect = null; //Verbindung erstellt und als null intialisiert
Statement statm = null; //Aussage objekt
ResultSet res = null; //Ergebnis Obejekt wird erstellt
try
{
connect = getConnection(); // Connection initalisierung
statm = connect.createStatement(); //Statement initalisierung
int iFach = 0;
String sTyp = "";
String sinterpret = "";
String stitel = "";
String sgenre = "";
String skaufdatum = "";
for (int a = 0; a < DatenVector.DatenStaender.capacity(); a++)
{
if (DatenVector.DatenStaender.elementAt(a) != null)
{
iFach = DatenVector.DatenStaender.get(a).getiFachangabe();
sinterpret = DatenVector.DatenStaender.get(iFach).getsInterpret();
stitel = DatenVector.DatenStaender.get(iFach).getsTitel();
sgenre = DatenVector.DatenStaender.get(iFach).getsGenre();
skaufdatum = DatenVector.DatenStaender.get(iFach).getsKaufdatum();
Traeger dt = DatenVector.DatenStaender.get(iFach);
if (dt instanceof CD)
{
sTyp = "CD";
}
if (dt instanceof DVD)
{
sTyp = "DVD";
}
String sql = "INSERT INTO sh_regal(fach,typ,interpret,titel,genre,kaufdatum)VALUES('"
+ iFach + "',' " + sTyp + "',' " + sinterpret + "',' " + stitel + "','" + sgenre
+ "', ' " + skaufdatum + "')";
/*String sql = ("Update sh_regal set fach = '" + iFach + " ', typ = '" + sTyp
+ "', interpret = ' " + sinterpret + " ',titel = '" + stitel + "',genre =' " + sgenre
+ "',kaufdatum=' " + skaufdatum + "'");*/
//für Abfragen stmt.executeQuery
//für Datenmanipulation (update,delete) stmt.executeUpdate
statm.executeUpdate(sql);
}
}
out.println("Datentraeger wurde in Datenbank geschrieben");
}
catch (ClassNotFoundException e)
{
handleException(e, "DB driver class not found"); //Exception Handling
}
catch (SQLException e)
{
handleException(e);
}
catch (NullPointerException npe)
{
handleException(npe, "NULL");
}
finally
{
closeConnection(connect, statm, res);
out.println("<form method='GET' action='" + "" + "/CDVerwaltung/Startseite'>"); // Button!
out.println("<input type=SUBMIT value=\"Startseite\">\n" + "</form>\n");
}
}
mit dem Update-SQL befehl (Auskommentiert) hat nichts funktioniert, führe zu einem Absturz des Browsers/Eclipse
Programmiere mit Eclipse Indigo EE und Java 7
Vielen Dank für die Hilfe im Voraus