AWT Markierte Zeile jList aus mySQL DB löschen

Nordm8

Neues Mitglied
Hallo an alle. :)

Da ich mich seit kurzen mit Java beschäftige und einge Startschwierigkeiten habe, habe ich mich hier angemeldet. Ich denke hier finde ich sicher die nötige Hilfe :D

Gleich eine Frage:

Habe ein DefaultListModel welches Datensätze aus einer mySQL Db ausliest und in der Liste anzeigt.
Ich will einen dieser Datensätze markieren und mithilfe eines DELETE Buttons aus der Liste UND DB löschen.
Komme hier aber nicht mehr weiter.

DB Verbindung....

Java:
 String driver = "com.mysql.jdbc.Driver";
            String connection = "jdbc:mysql://localhost:3306/abschluss";
            String user = "root";
            String password = "";
            Class.forName(driver);
            Connection con = DriverManager.getConnection(connection, user, password);
            
            stmt = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE );
            String sql = "Select * from kontakte";
            rs = stmt.executeQuery(sql);

Liste füllen...

Java:
 while(rs.next()){
                id              = rs.getString("kontaktID");
                String Name     = rs.getString("Name");
                String NachName = rs.getString("Nachname");
                String Strasse  = rs.getString("Strasse");
                String Ort      = rs.getString("Ort");
                String Mobil    = rs.getString("Mobil");
                String Telefon  = rs.getString("Telefon");
                String Privat   = rs.getString("privat");
                
                if (Privat.equals("yes")){
                  PartnerArt = "privat";
                } else PartnerArt = "geschäftlich";
                
                
                m.addElement(Name + " " + NachName + ", " + Strasse + ", " + Ort + ", " + Mobil + ", " + Telefon + ", " + PartnerArt);
                
               
            }


Am Trigger des Delete Buttons hab ich das eingetragen....

Java:
  Object sel =null;

        int[] selectedIx = this.jList1.getSelectedIndices();      

        for (int i = 0; i < selectedIx.length; i++) {
            sel = jList1.getModel().getElementAt(selectedIx[i]);
        }

        System.out.println(sel);
    }

Dh ich bekomme schon mal den zu löschenden/markierten Datensatz raus. Was mir fehlt ist aber erstens die ID um den Datensatz in der mySQL Db zu finden und zu löschen UND mir fehlen die Befehle dazu.

Zur Info: ID darf in der Liste nicht angezeigt werden.

Bitte um Hilfe.

Nord
 

turtle

Top Contributor
Was mir fehlt ist aber erstens die ID um den Datensatz in der mySQL Db zu finden und zu löschen

Du solltest dein Model überdenken. Ich schreibe eigentlich immer ein eigenes Model, in dem alle Daten zusammen in EINEM Objekt stehen.

Das wäre bei dir ein Objekt Kontakt (?) mit den Attributen Name,NachName,Strasse,Ort,Mobil,Telefon,Privat. Aber, wichtig, auch die ID des Datensatzes aus der DB. (Variable beginnen übrigens mit einem Kleinbuchstaben).

Somit kannst du aus dem selektierten Eintrag im Model nachschauen und hast die ID des Kunden.

Dann musst du "nur" noch den Datensatz löschen
SQL:
delete kontakte where id=<deine ID aus dem Model>
 
Zuletzt bearbeitet:

turtle

Top Contributor
Ich behaupte, das eine Liste nicht so gut geeignet ist, da du ja die Informationen in einer Zeile packen musst. Hier ist wohl eine JTable sinnvoller.

Ich habe mal ein kleines Beispiel für JList zusammengebastelt, was zeigt, was ich meine. Derzeit wird "nur" id, name und Nachname gezeigt, weil ich das sonst unleserlich finde.

Wenn du auf einen Kontakt klickst, wird das delete Kommando angezeigt, welches du auf der DB ausführen müsstest.
Java:
package list;

import java.awt.BorderLayout;

public class Main {

    public static void main(String[] args) {
	final JFrame frame = new JFrame("Turtle");
	frame.getContentPane().setLayout(new BorderLayout());
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	Kontakt[] memoryKontakte = new Kontakt[] { new Kontakt(12, "Turtle", "Turtle", "strasse", "ort", "mobil", "telefon", "privat"),
		new Kontakt(34, "Nordm8", "Nordm8", "strasse", "ort", "mobil", "telefon", "privat"), };
	final JList<Kontakt> listKontakte = new JList<Kontakt>(memoryKontakte);
	frame.getContentPane().add(listKontakte, BorderLayout.CENTER);
	JPanel panel = new JPanel();
	frame.getContentPane().add(panel, BorderLayout.SOUTH);
	panel.setLayout(new BorderLayout(0, 0));
	JButton btnSaveButton = new JButton("Save");
	btnSaveButton.addActionListener(new ActionListener() {

	    @Override
	    public void actionPerformed(ActionEvent e) {
		Kontakt selectedValue = listKontakte.getSelectedValue();
		if (selectedValue != null) {
		    JOptionPane.showMessageDialog(frame, "DELETE kontakte WHERE id=" + selectedValue.getId());
		}
		System.out.println(selectedValue);
	    }
	});
	panel.add(btnSaveButton, BorderLayout.NORTH);
	frame.pack();
	frame.setVisible(true);
    }
}
Und eine Kontakte-Klasse brauchts auch
Java:
package list;

import java.math.BigInteger;

public class Kontakt {
    private int id;
    private String name;
    private String nachName;
    private String strasse;
    private String ort;
    private String mobil;
    private String telefon;
    private String privat;

    public Kontakt(int id, String name, String nachName, String strasse, String ort, String mobil, String telefon, String privat) {
	this.id = id;
	this.name = name;
	this.nachName = nachName;
	this.strasse = strasse;
	this.ort = ort;
	this.mobil = mobil;
	this.telefon = telefon;
	this.privat = privat;
    }

    @Override
    public String toString() {
	return "" + id + ":" + name + ":" + nachName;
    }

    public int getId() {
	return id;
    }

    public void setId(int id) {
	this.id = id;
    }

    public String getName() {
	return name;
    }

    public void setName(String name) {
	this.name = name;
    }

    public String getNachName() {
	return nachName;
    }

    public void setNachName(String nachName) {
	this.nachName = nachName;
    }

    public String getStrasse() {
	return strasse;
    }

    public void setStrasse(String strasse) {
	this.strasse = strasse;
    }

    public String getOrt() {
	return ort;
    }

    public void setOrt(String ort) {
	this.ort = ort;
    }

    public String getMobil() {
	return mobil;
    }

    public void setMobil(String mobil) {
	this.mobil = mobil;
    }

    public String getTelefon() {
	return telefon;
    }

    public void setTelefon(String telefon) {
	this.telefon = telefon;
    }

    public String getPrivat() {
	return privat;
    }

    public void setPrivat(String privat) {
	this.privat = privat;
    }

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Markierte Zeile löschen AbstractTableModel AWT, Swing, JavaFX & SWT 10
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
C JTable markierte Zelle wird bei removeRow nicht mit gelöscht AWT, Swing, JavaFX & SWT 6
Q markierte mails löschen AWT, Swing, JavaFX & SWT 5
G Markierte MenüItems des JCombobox - Popups ausgeben AWT, Swing, JavaFX & SWT 7
J Markierte Zeilen in einem JTable AWT, Swing, JavaFX & SWT 3
M JavaFX TableView nur erste Zeile editable machen und gelb markieren AWT, Swing, JavaFX & SWT 0
F Zeile in mehreren Jtables bei Selektion markieren AWT, Swing, JavaFX & SWT 11
missy72 JavaFX TableRow / RowFactory Zeile einfärben AWT, Swing, JavaFX & SWT 9
T Zelle- und die Zeile-Farbenwechsel bei der Selektion in der Tabelle AWT, Swing, JavaFX & SWT 4
M TableView Zeile hinzufügen AWT, Swing, JavaFX & SWT 5
I JLabel neue Zeile AWT, Swing, JavaFX & SWT 4
B JavaFX TableView eine Zeile markieren AWT, Swing, JavaFX & SWT 5
C SWT Breadcrumb Zeile mit entsprechenden Hyperlinks erstellen AWT, Swing, JavaFX & SWT 0
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
Bluedaishi JTextArea gefundene Zeile nach Oben Scrollen AWT, Swing, JavaFX & SWT 13
B Zeile einer Tabelle selektieren AWT, Swing, JavaFX & SWT 1
T Swing Tabelle mit Button - Anzeigefehler nach Zeile entfernen AWT, Swing, JavaFX & SWT 1
T Swing JTable Zeile mit ausgelesenen Werten mit Hilfe von einem Button hinzufügen AWT, Swing, JavaFX & SWT 1
D JLabel bei Aufruf neue Zeile AWT, Swing, JavaFX & SWT 5
C Button Text in JList neue Zeile AWT, Swing, JavaFX & SWT 6
J Swing JTable Zeile nicht auswählbar machen AWT, Swing, JavaFX & SWT 0
F Swing String[] in JTextArea ausgeben. Jeder Eintrag in neue Zeile, aber ohne "\n"- Geht das? AWT, Swing, JavaFX & SWT 3
J JTable Zeile anklicken und neues Frame öffnen AWT, Swing, JavaFX & SWT 4
S JTable nach aktualisierung - neue Zeile nicht "klickbar" AWT, Swing, JavaFX & SWT 0
D Swing Letzte Zeile einer JTable nicht über RowSorter sotieren AWT, Swing, JavaFX & SWT 2
M Text Area 1. Zeile oben AWT, Swing, JavaFX & SWT 4
I ausgewählte Zeile mit Hilfe der Tastatur löschen! AWT, Swing, JavaFX & SWT 3
B jTable ganze Zeile anhand eines Kriterium färben AWT, Swing, JavaFX & SWT 6
T JtextPane Zeile aktualisieren AWT, Swing, JavaFX & SWT 3
M JTextArea Zeile hinzufügen AWT, Swing, JavaFX & SWT 4
M Swing JScrollPane (Parent JTextArea) aktualisieren + neue Zeile AWT, Swing, JavaFX & SWT 5
P Swing Alle Zeilen einer Spalte (jTable) zusammen zählen und in eine eigene Zeile das Ergebnis schreiben. AWT, Swing, JavaFX & SWT 7
Ollek Swing JTable - Zeile löschen mit AbstractTableModel AWT, Swing, JavaFX & SWT 20
S Swing Kopieren einer vollständigen Zeile einer JTable AWT, Swing, JavaFX & SWT 3
F GroupableTableHeader zeigt nur eine Zeile AWT, Swing, JavaFX & SWT 4
H Unterschiedliche JComboBox je JTable Zeile AWT, Swing, JavaFX & SWT 4
N Swing FileReader Zeile lesen AWT, Swing, JavaFX & SWT 5
C SWT Wie greife ich auf den Inhalt einer bestimmten Zeile zu? (TableViewer) AWT, Swing, JavaFX & SWT 7
F SWT Tabelle Zeile auslesen AWT, Swing, JavaFX & SWT 3
J Swing JTable: Komplette Zeile aber ohne Spalten markieren AWT, Swing, JavaFX & SWT 11
K Zeile verbinden AWT, Swing, JavaFX & SWT 2
G Zeile in JTable durch rechte Maustaste manipulieren AWT, Swing, JavaFX & SWT 4
S Swing AWT-Exception bei JTable mit JComboBox beim Löschen der letzten Zeile AWT, Swing, JavaFX & SWT 3
S Tabelle sortieren, mit Ausnahme der letzten Zeile AWT, Swing, JavaFX & SWT 9
P Aktuelle Zeile in JTextPane farblich hervorheben AWT, Swing, JavaFX & SWT 3
H Swing JComboBox in einer Zeile AWT, Swing, JavaFX & SWT 3
Meldanor Swing JTable - Eine neue Zeile vor einer bestehenden Einfügen AWT, Swing, JavaFX & SWT 2
F Zusätzliche Zeile in der GUI AWT, Swing, JavaFX & SWT 4
H Zeile in DefaultTableModel hinzufügen, ProgressBar AWT, Swing, JavaFX & SWT 4
R Zeile in JTable anhand von Wert einfärben AWT, Swing, JavaFX & SWT 2
M Jframe wie bekommt man bei den zeile einen header erzeugen AWT, Swing, JavaFX & SWT 2
N JTable, Zeile bleibt immer selektiert.... AWT, Swing, JavaFX & SWT 3
Dit_ JTextArea zu Zeile X scrollen AWT, Swing, JavaFX & SWT 4
M [erledigt] Bestimmte Zeile aus JTextArea löschen AWT, Swing, JavaFX & SWT 3
F Swing JTable: Problem beim zeile löschen AWT, Swing, JavaFX & SWT 3
J Swing JList... mehrere Strings in Zeile AWT, Swing, JavaFX & SWT 8
N Methode zum ermitteln der editierte Zeile/Zelle in jTable AWT, Swing, JavaFX & SWT 8
C Mit SelectionListener herausfinden welche zeile in Jtable angeklickt wurde AWT, Swing, JavaFX & SWT 5
E In JTable neue Zeile mit Tabulator einfügen AWT, Swing, JavaFX & SWT 5
M Text in txt-Datei in letzte Zeile schreiben? AWT, Swing, JavaFX & SWT 14
R JTable Hintergrund der Zeile abhängig von Inhalt einer Zelle verändern AWT, Swing, JavaFX & SWT 3
Developer_X Swing text von bestimmter zeile in jtextarea herausbekommen. AWT, Swing, JavaFX & SWT 12
R JTable Zeile löschen AWT, Swing, JavaFX & SWT 4
T MyTableCellRenderer selektiert nicht die ganze Zeile AWT, Swing, JavaFX & SWT 3
R FlowLayout: 1 Objekt pro Zeile AWT, Swing, JavaFX & SWT 5
D eigenes Tablemodel, Zeile löschen ArrayindexOOB excp AWT, Swing, JavaFX & SWT 4
C JTable mit RowSorter und Drag & Drop: Zeile verschieben AWT, Swing, JavaFX & SWT 4
P JTable zeile einfärben AWT, Swing, JavaFX & SWT 1
N Farbe einer einzelnen Zeile einer JTable ändern AWT, Swing, JavaFX & SWT 10
G Componente Zeile fixieren AWT, Swing, JavaFX & SWT 3
dl85hej bestimmte Zeile anspringen AWT, Swing, JavaFX & SWT 3
S Zeile an eine Tabelle anfügen AWT, Swing, JavaFX & SWT 5
R JTable: Zellen einer Zeile zusammenfassen? AWT, Swing, JavaFX & SWT 3
D JTable um eine Zeile erweitern AWT, Swing, JavaFX & SWT 4
P Tabellen in Java - Zeile anhängen AWT, Swing, JavaFX & SWT 19
GilbertGrape JTable - immer leere Zeile AWT, Swing, JavaFX & SWT 6
A JTable zeile auswählen AWT, Swing, JavaFX & SWT 2
A JXTable jede zweite Zeile einfärben AWT, Swing, JavaFX & SWT 4
S in JTable eine Zeile färben AWT, Swing, JavaFX & SWT 5
T JTable ohne Titel in der ersten Zeile AWT, Swing, JavaFX & SWT 2
K leere Zeile zu JTable zufügen AWT, Swing, JavaFX & SWT 2
T jtabel - Zeile selktierbar aber nicht editierbar AWT, Swing, JavaFX & SWT 2
E JTable letzte Zeile in Fett schrift? AWT, Swing, JavaFX & SWT 3
O JTable + event wenn andere Zeile selektiert ist AWT, Swing, JavaFX & SWT 5
J jTextarea Anzahl Zeichen in einer Zeile begrenzen AWT, Swing, JavaFX & SWT 2
O JTable Zeile zuweisen und weiter mit dem Button AWT, Swing, JavaFX & SWT 2
M JTable & Problem, das nicht die komplette Zeile gefärbt AWT, Swing, JavaFX & SWT 6
G JTable erste zeile fixieren wie in excel? AWT, Swing, JavaFX & SWT 3
Z JTable automatisch zu einer Zeile scrollen AWT, Swing, JavaFX & SWT 4
lolkind eine Zeile und Tabelle ist Rechtsbündig? AWT, Swing, JavaFX & SWT 3
G JTable Zeile zurückgeben AWT, Swing, JavaFX & SWT 4
D Herausfinden auf welche Zeile in einer JTable geklickt wurde AWT, Swing, JavaFX & SWT 2
F JTextPane aktive Zeile AWT, Swing, JavaFX & SWT 2
S JTable: Zeile unter MouseCursor farblich hervorheben AWT, Swing, JavaFX & SWT 2
N Trotz richtiger ListSelectionMode kann ich keine Zeile sel? AWT, Swing, JavaFX & SWT 4
N Die Zeile einer JTable verändert beim klicken ihre Farbe? AWT, Swing, JavaFX & SWT 7
S Eine Zeile zu einer JTable hinzufügen wo Zelle selektiert is AWT, Swing, JavaFX & SWT 4
A Prob:Tabelle bei Zellensprung: Letzte zeile doppelt sichtbar AWT, Swing, JavaFX & SWT 7
G JTable Zeile mit Farbe füllen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben