Mit Button einen Datensatz löschen

boze

Neues Mitglied
Hello

Ich habe eine Tabelle "note" die in Tabellenform im Browser angezeigt wird. Mithilfe eines "Löschen"-Buttons soll ich den Datensatz löschen können.

Da ich die fast exakt gleiche Aufgabe in PHP gelöst habe, versuchte ich dies auszunutzen und baute eine ähnliche Logik auf. Doch leider funktioniert es nicht wie erhofft. Der Code sieht zurzeit so aus:

Java:
String query = "SELECT * FROM note";
                  
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", "root", "dbpass");
Statement st = con.createStatement();
                  
ResultSet rs = st.executeQuery(query);
                  
int i = 0;
                  
while (rs.next()) {
     int notenr[i] = rs.getInt(1);
     %><tr><td><%= rs.getString(2)%></td>
     <td><%= rs.getString(3)%></td>
     <td><%= rs.getString(4)%></td>
     <td><%= rs.getString(5)%></td>
     <td><form method="post" action="deletenote.jsp">
          <button type="submit" name="delete" value="<%= notenr[i] %>">löschen</button>
</form></tr>
     <% i++;}
              
     String queryDelete = "UPDATE note SET isDeleted = '1' WHERE id = " + notenr[i] + "";
                  
     String isset = request.getParameter("delete");
     if(!isset.equals("")) {
          st.executeQuery(queryDelete);
     }
              
     %>

Tabelle note:

wje28t.png


Da in der Tabelle natürlich mehr Datensätze vorhanden sind, habe ich versucht mit einem Array und der Variable i die ID der Datensätze zu benutzen.
Fehlermeldung:
java.lang.ArrayIndexOutOfBoundsException: 0

Die Fehlermeldung sagt mir, dass im Array auf der Position 0 kein Wert definiert ist, was ja eigentlich nicht so sein soll. Er soll die mit ID's abfüllen.

Ich bedanke mich im Vorraus.
 
Zuletzt bearbeitet:

Times

Bekanntes Mitglied
Du deklarierst dein int array "notenr" erst innerhalb der Schleife und weist dort direkt der Stelle i eine Zahl zu, dabei ist das array noch nicht angelegt worden.
Schreib vor die Schleife:
Java:
int[] notenr = new int[Länge]; //Länge = anzahl an Datensätzen

und dann in der Schleife statt:
Java:
int notenr[i] = rs.getInt(1);
nurnoch:
Java:
notenr[i] = rs.getInt(1);
 

boze

Neues Mitglied
Du deklarierst dein int array "notenr" erst innerhalb der Schleife und weist dort direkt der Stelle i eine Zahl zu, dabei ist das array noch nicht angelegt worden.
Schreib vor die Schleife:
Java:
int[] notenr = new int[Länge]; //Länge = anzahl an Datensätzen

und dann in der Schleife statt:
Java:
int notenr[i] = rs.getInt(1);
nurnoch:
Java:
notenr[i] = rs.getInt(1);

Ich danke dir. Alle Syntax-Error sind verschwunden. Jetzt ist jedoch ein kleiner Fehler wieder aufgetaucht:

java.lang.NullPointerException

Ich glaube das liegt an meine if-Anweisung. Er prüft sofort und gibt null zurück, wodurch der Fehler passiert. Ich versuche kurz, das Problem zu lösen und melde mich wieder.

EDIT: Geschafft!

Java:
String isset = request.getParameter("delete");
queryDelete = "UPDATE note SET isDeleted = '1' WHERE id = '" + isset + "'";
if(isset != null) {
    st.executeUpdate(queryDelete);
}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Über einen Button eine SQL-DB aussuchen Datenbankprogrammierung 3
M MySQL Passwort Clientseitig ändern und über Button ausführen Datenbankprogrammierung 0
J Derby/JavaDB Adressbuch mit search-button Datenbankprogrammierung 2
J Anzeige Button gibt immer nur 1. Datensatz aus DB aus Datenbankprogrammierung 8
pkm PostgreSQL Kann mit mybatis einen Parameter für eine postgreSQL-Abfrage nicht übergeben. Datenbankprogrammierung 5
ruutaiokwu MySQL MariaDB-Client-Zertifkate, nur für einen bestimmten User Datenbankprogrammierung 5
L MySQL Bekomme einen Fehler beim ResultSet Datenbankprogrammierung 12
J Warum sind Sockets für einen Live-Chat sinnvoll? Datenbankprogrammierung 8
B SQL-Statement Prüfen ob eine Spalte einen Wert enthält Datenbankprogrammierung 2
M Derby/JavaDB einen Null-Wert in die Datenbank schreiben Datenbankprogrammierung 7
E Kann man, wenn man in DB2 Tabellen erstellt hat für dessen auch einen Command-File erstellen? Datenbankprogrammierung 1
T Wie kann FS einen extra Wert bekommen? Datenbankprogrammierung 1
M Finde einen eifachen Befehl nicht Datenbankprogrammierung 4
H MySQL Werte eines Datensatzes in einen anderen kopieren Datenbankprogrammierung 2
P MySQL eine richtige Datenbank für einen routenplaner erstellen Datenbankprogrammierung 2
M Designfrage zu Rows die sich auf einen Datensatz derselben Tabelle beziehen Datenbankprogrammierung 7
P Mittels Java einen neuen MySQL User erstellen Datenbankprogrammierung 4
I Belastet es das System zu sehr einen Timer jede 0.2 Sekunden eine DB Abfrage machen zu lassen? Datenbankprogrammierung 9
N Datenbank für einen Stundenplan Datenbankprogrammierung 4
B Suche Query um genau einen Wert einer def. Gruppe aus einer Tabelle zu erhalten. Datenbankprogrammierung 2
R Bei Webformular DropDown Felder JA, NEIN! Was für einen Datentyp verwenden? Datenbankprogrammierung 7
Landei Mehre Werte für einen Prepared-Statement_Parameter übergeben? Datenbankprogrammierung 3
P Wie übergebe ich einen NULL Wert in meinem Java-Programm? Datenbankprogrammierung 7
T [jdbc] einen Eintrag aus mehreren Tabellen löschen (Batch) Datenbankprogrammierung 3
V Daten aus Tabelle in einen Array Datenbankprogrammierung 4
N Funktion um einen Wert in einem ResultSet zu finden ? Datenbankprogrammierung 5
R Einen Integer-Wert aus einer MySQL DB auslesen Datenbankprogrammierung 2
J selectabfrage um einen eingegeben namen rauszufinden Datenbankprogrammierung 3
F SQLite Datensatz löschen Datenbankprogrammierung 13
S sql query, um bestimten datensatz zu finden Datenbankprogrammierung 33
D MySQL Neuen Datensatz mit "new" anlegen Datenbankprogrammierung 16
E Nur der letzte Datensatz wird in Tabelle geschrieben Datenbankprogrammierung 4
M Serienbrief aus Datensatz Datenbankprogrammierung 2
E Aufzählung liest nur ersten Datensatz Datenbankprogrammierung 14
S SQLite Selectanfrage lieft datensatz aber cursor ist leer Datenbankprogrammierung 2
A MySQL Datensatz wird nicht richtig gelöscht Datenbankprogrammierung 6
L SQLite fügt nur den ersten Datensatz ein Datenbankprogrammierung 2
C Hibernate Datensatz löschen Datenbankprogrammierung 2
M Access Datensatz beinhaltet ESC-Zeichen Datenbankprogrammierung 3
U Nur den ersten Datensatz löschen wenn mehrere gleiche da sind Datenbankprogrammierung 2
C Gleichzeitiger Zugriff auf Datensatz Datenbankprogrammierung 5
Eldorado MySQL Hibernate - neuen Datensatz einfügen Datenbankprogrammierung 2
Java.getSkill() Datensatz / Tupel automatisch nach xy Tagen / Stunden löschen Datenbankprogrammierung 7
M Datensatz exklusiv öffnen Datenbankprogrammierung 5
M design issue: datensatz lange locken? Datenbankprogrammierung 10
M Datensatz aus Datenbank löschen Datenbankprogrammierung 6
T Theoriefrage : mehrere User vs gleichen Datensatz Datenbankprogrammierung 4
K Schnelle Methode um zu testen ob Datensatz existiert Datenbankprogrammierung 9
R datenbank - datensatz sucjen Datenbankprogrammierung 4
-MacNuke- Hibernate löscht jeden Datensatz einzeln? Datenbankprogrammierung 12
V Doppelten Datensatz vermeiden? Datenbankprogrammierung 7
S Überprüfen ob Datensatz existiert Datenbankprogrammierung 2
P SQL, nur jeder 5. Datensatz Datenbankprogrammierung 9
B Eingefügter Datensatz erneut abfragen. Datenbankprogrammierung 10
M Letzter Datensatz mit auslesen(brauch kleinen Tipp) Datenbankprogrammierung 15
N SELECT: Datensatz sperren Datenbankprogrammierung 6
C vorheriegen oder letzten Datensatz Datenbankprogrammierung 2
K ResultSet: Erste Zeile ausgeben, Datensatz in String speiche Datenbankprogrammierung 13
W Nur ein Datensatz wird angezeigt, obwohl mehrere existieren Datenbankprogrammierung 7
C Datensatz einfügen und quittierung Datenbankprogrammierung 31
H letzter Datensatz wird nicht gefunden? Datenbankprogrammierung 6
F suche MySQl-Befehl um Datensatz an Tabellenende zu schreiben Datenbankprogrammierung 2

Ähnliche Java Themen


Oben