Datensatz aus Datenbank löschen

Status
Nicht offen für weitere Antworten.

maxth

Aktives Mitglied
Hallo,

ich hab mal wieder ein Problem. Also ich habe eine GUI die mir datensätze aus einer Datenbank anzeigen kann. Jetzt möchte ich diese per Klick löschen, oder wenn sie Verändert werden müssen, verändern.

Ich hab eine KLasse "ShowViewer" die mir die GUI bietet zum anzeigen, darauf befindet sich eine Toolbar für die Buttons. Dann habe ich eine Klasse "WohnungsVerwalter", diese Klasse holt mir die Datensätze aus der Datenbank. In dieser Klasse möchte ich auch, die Bearbeitungsmethode und die Löschmethode.

Und ich hab eine KLasse Verbidnung die mir MEthoden zum Löschen und editieren bereit legen.


Ich hoffe ihr könnt mir helfen.


Klasse ShowViewer
Java:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.SwingUtilities;
 
public class ShowViewer extends JPanel implements ActionListener{
    
    /**
	 * 
	 */
	

	WohnungVerwalter wohnung = new WohnungVerwalter(); 
    
    String iconsDirectory = "icons/";
    
    int counter; 
 
        
      private JTextField textField1;
      private JTextField textField2;
      
      
      
    
    public ShowViewer(){
        super(); 
        
       
        this.setLayout(new BorderLayout());
        
        JToolBar toolBar = new JToolBar();
        addButtons(toolBar);
        addTextFelder();
        toolBar.setFloatable(false);
        toolBar.setRollover(true);

        JPanel topPanel = new JPanel(new GridLayout(7, 5)); //dies ist ein Subcontainer
        for (int i = 0; i < 25; i++)
            topPanel.add( new JTextField("Feld Nr."+i) );
        
       this.add(topPanel, BorderLayout.CENTER); 

        
 
        
        this.add(toolBar, BorderLayout.SOUTH);
       
       //this.add(textField1, BorderLayout.CENTER);
        //this.add(textField2, BorderLayout.CENTER);
   
        
       // this.add(textField2, BorderLayout.SOUTH);
        
        
        
        
        
    }   
    
    public void addTextFelder (){
        textField1 = new JTextField();
        textField2 = new JTextField();
     
      
        
        
    }
    
    public void addButtons(JToolBar toolBar) {
        JButton button;
        button = createButton("links", "Zurück" );
        toolBar.add(button);
        button = createButton( "rechts", "Vorwärts" );
        toolBar.add(button);
        button = createButton("blume", "Bearbeiten");
        toolBar.add(button);
        button = createButton("delet", "Löschen");
        toolBar.add(button);
        
 
    }
 
    public JButton createButton(String actionCommand, String toolTipText) {
        String imgLocation = iconsDirectory + actionCommand + ".jpg";
        JButton button = new JButton();
        button.setActionCommand(actionCommand);
        button.setToolTipText(toolTipText);
        button.addActionListener(this);
        button.setIcon(new ImageIcon(imgLocation, actionCommand));
        
        return button;
            
    }
    
    
    
    
       public void showNext() {
            
            counter++;
            
            if (counter>=wohnung.list.size()) counter = 0;
            textField1.setText(wohnung.list.get(counter).getName());
            textField2.setText(wohnung.list.get(counter).getMieterName());
           
        
    }
        public void deleteCurrent(){
            
            String d;
            String s; 
            
            d = (wohnung.list.get(counter).getID());
            //vb.verbinden();
            
            s = "DELETE FROM `mkb`.`vermieter` WHERE `vermieter`.`ID` =" + d;
                
        }
        
        
        public void editCurrent(){
        	
        	
        }
        
        
      public void showLast() {
            
            counter--;
            
            if (counter<= 1) //counter = 0;
            textField1.setText(wohnung.list.get(counter).getName());
            textField2.setText(wohnung.list.get(counter).getMieterName());
            
 
        
        
    }
    
    public static void main (String[] args)
    {
        // man kann natürlich seine eigene JFrame-Klasse schreiben und diese hier
        // verwendent
        final JFrame myFrame = new JFrame("Fenstertitel");
        // Layouting des Frames: der ShowViewer ist Hauptkomponente und kommt in die Mitte
        myFrame.add( new ShowViewer(), BorderLayout.CENTER );
 
        // pack() setzt die Größe des Frames anhand des Inhaltes (daher PreferredSize von ShowViewer setzen
        myFrame.pack(); //oder setSize(800, 600);
        myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        // Anzeigen des Frames
        SwingUtilities.invokeLater(new Runnable()
        
        {
            public void run()
            {
                myFrame.setVisible(true);
            }
        });
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().compareTo("rechts") == 0)
            this.showNext();
 
        
    }}

Klasse Wohnungsverwalter

Java:
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
 

 
public class WohnungVerwalter   {
    
    String s;
   

   ArrayList<Wohnung> list = new ArrayList<Wohnung>();

    Verbindung vb = new Verbindung();
    
  
    
    public WohnungVerwalter() {
        
        vb.verbinden();
       
    int counter = 0;

             s = "SELECT * FROM vermieter";
             
             ResultSet r =  vb.execSql(s);
             
             try {
				while(r.next()) {
				  
					
					list.add(new Wohnung("ID: " + r.getString(1) ,"Wohnung: " + r.getString(1), "Name: " + r.getString(2)));
					
					
				 }
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Verbindung {
	public static Connection con;
	
	public static Statement statement;
	
	public static ResultSet rs;
	
	private static final String className="com.mysql.jdbc.Driver";
	private static final String DB_URL= "jdbc:mysql://localhost/mkb";
	private static final String DB_USER = "root";
	private static final String DB_PASSWD = "";
	
	public void verbinden(){
		try{
			Class.forName(className);
		} catch (ClassNotFoundException e){
			System.out.println("JDBC driver not found.");
		}
		try{
			con = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWD);
		} catch(SQLException e){
			System.out.println("Error establishing connection: " + e.getMessage());
		}
	}
	
	public void trennen(){
		try{
			statement.close();
			con.close();
		}catch (SQLException e){
			System.out.println("ERROR closing connection: " + e.getMessage());
		}
	}
	
	public ResultSet execSql(String sql){
		try {
			statement = con.createStatement();
			ResultSet resultSet = statement.executeQuery(sql);
			return resultSet;
			
		} catch (Exception e) {
			// TODO: handle exception
		}
		
		return null;
	}
	
	public void update(String sql){
		try {
			statement = con.createStatement();
			statement.executeUpdate(sql);
			statement.close();
		} catch (Exception e) {
			// TODO: handle exception
		}
	}
}
 
S

SlaterB

Gast
besteht irgendeine Frage, ein Problem?
du kannst doch nicht nur deinen Code posten, bei dem zig Dinge falsch sein können
 

maxth

Aktives Mitglied
Ohh Entschuldigung, das ist jetzt hab ich das wichtigste vergessen.

Also ich hab die Probleme im ShowViewer und WohnungsVerwalter. In der Klasse ShowViewer habe ich eine Methode deleteCurrent() und ein editCurrent. Diese sollen den ausgewählten Datensatz löschen bzw. verändern. Das versuche ich anhand der Position von meinem Counter den ich im ShowViewer habe ((wohnung.list.get(counter).getID());) nur wie übergebe ich diesen Wert an den Wohnungsverwalter?! und wie schreib ich das am besten das mir auch der Datensatz gelöscht bzw. geändert wird.

Vielen Dank im vorraus.
 
S

SlaterB

Gast
> nur wie übergebe ich diesen Wert an den Wohnungsverwalter?!

ein Methodenaufruf?

> und wie schreib ich das am besten das mir auch der Datensatz gelöscht bzw. geändert wird.

am besten korrekt

hmm, ich glaube ich kann dabei gar nicht richtig helfen, einfach nur 'wie mache ich etwas' birgt wohl keine konkreten Probleme
 

maxth

Aktives Mitglied
Java:
public void deleteCurrent(){
            
            String delete;
            String sql; 
            
            delete = (wohnung.list.get(counter).getID());// Wert der übergeben werden soll
            /
            

    // sql = "DELETE FROM `mkb`.`vermieter` WHERE `vermieter`.`ID` =" +     delete;
                
        }

Der SQL teil gehört natürlich in den WohnungsVerwalter teil.

Im WohnungsVerwalter mache ich dann eine Methode zum löschen des Datensatzes und übernehme dann den Wert vom Counter aus dem ShowViewer.
Ich weiß nicht wie ich den Wert am besten übergeben soll, und wie genau der Datenbankteil des Löschens funktioniert.
 
S

SlaterB

Gast
was ist denn so unverständlich an einem Methodenaufruf?
egal ob Datenbank, Datei, Web, einfache String-Bearbeitung,
egal in welcher Programmiersprache oder sonstigen Paradigma, das Ziel ist doch immer denkbar einfach

deleteCurrent() {
// 1. Information zusammenstellen, z.B. Id des Eintrag, DB-Verbindung
// 2. Löschen durchführen
// fertig
}

das ist wirklich schwer? ganz normal nachdenken,
der WohnungsVerwalter ist überhaupt keine Hürde dabei,
genauso gut kann es

deleteCurrent() {
// 1. Information zusammenstellen, z.B. Id des Eintrag
// 2. an WohnungsVerwalter Informationen übergeben, einfacher Methodenaufruf
// 3. Löschen (wahrscheinlich in WohnungsVerwalter) durchführen
// fertig
}

lauten,

wie man einen Datensatz genau per SQL löscht ist gewiss ein berechtigtes separates Problem,
aber da muss man auch die Muße haben, Tutorials durchzulesen ;)

Google
->
Datensätze löschen
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R datenbank - datensatz sucjen Datenbankprogrammierung 4
F SQLite Datensatz löschen Datenbankprogrammierung 13
B Mit Button einen Datensatz löschen Datenbankprogrammierung 2
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
M Designfrage zu Rows die sich auf einen Datensatz derselben Tabelle beziehen Datenbankprogrammierung 7
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
T Theoriefrage : mehrere User vs gleichen Datensatz Datenbankprogrammierung 4
K Schnelle Methode um zu testen ob Datensatz existiert Datenbankprogrammierung 9
-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
J Anzeige Button gibt immer nur 1. Datensatz aus DB aus Datenbankprogrammierung 8
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
Baerdoc Empfehlungen zur Auswahl Datenbank Datenbankprogrammierung 6
torresbig MySQL hibernate - could not resolve entity class ... (Datenbank Anfänger) Datenbankprogrammierung 19
M Meine Datenbank lässt sich mit meiner Methode nicht ändern Datenbankprogrammierung 1
I SaaS Applikation: pro Kunde eine Datenbank / Schema oder eine DB für alle Kunden? Datenbankprogrammierung 76
T SQL-Statement Datenbank nach SQL Statement schließen? Datenbankprogrammierung 7
M Datenbank Zugraff nach Umwandlung in .jar-Datei nicht mehr möglich Datenbankprogrammierung 4
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
MongoDB-Datenbank in Androidstudio einbinden Datenbankprogrammierung 1
thor_norsk Datenbank: Apache Derby Datenbankprogrammierung 6
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
M Datenbank mit REST API Datenbankprogrammierung 66
M Entfernte Datenbank Datenbankprogrammierung 11
T Datenbank: Tabelle erstellen bei Web-Applikation Datenbankprogrammierung 4
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
M MySQL Datenbank in Array Datenbankprogrammierung 2
S Den letzten Eintrag aus Datenbank ziehen (Oracle SQL Dev.) Datenbankprogrammierung 14
N Datenbank abfragen nach bestimmten Wort Datenbankprogrammierung 7
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
ma095 value NULL- Datenbank Postgresql Spring - intellij community Datenbankprogrammierung 0
raptorrs Plötzlich keine Verbindung zur Datenbank mehr möglich Datenbankprogrammierung 14
Davee SQLite SQLite Datenbank lässt sich nicht auf anderen PCs öffnen Datenbankprogrammierung 8
P Datenbank Tool - besser als oracle SQL Developer gesucht mit effizinte Verbindungsverwaltung Datenbankprogrammierung 2
X JPA (EclipseLink) und Oracle Datenbank Datenbankprogrammierung 2
T Datenbank auf einer Webseite aus einer Exceltabelle erstellen Datenbankprogrammierung 5
L SQL Datenbank Datenbankprogrammierung 7
L SQL Datenbank INSERT INTO Datenbankprogrammierung 6
L SQL Datenbank Tabelle insert Datenbankprogrammierung 7
L SQL Datenbank Tabelle erstellen Datenbankprogrammierung 6
nonickatall MySQL Auf neue Datensätze in einer Datenbank reagieren Datenbankprogrammierung 5
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
anton1 Online Datenbank Datenbankprogrammierung 7
krgewb H2-Datenbank öffnen Datenbankprogrammierung 8
J Datenbank abfragen Datenbankprogrammierung 6
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
O SQL Abfragen mit Mini Datenbank Datenbankprogrammierung 12
Z Datenbank Choicebox wird nicht befüllt Datenbankprogrammierung 15
S Suche In SQL Datenbank mit array Datenbankprogrammierung 6
P Enum in der Datenbank Datenbankprogrammierung 1
Z SQL- Datenbank 1.PK zu 2.FK Datenbankprogrammierung 3
E netbeans - jsp Daten in Datenbank hinzufügen Datenbankprogrammierung 2
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
MiMa wo Datenbank verbinden/trennen? Datenbankprogrammierung 1
H MySQL Verbindung Datenbank und Eclipse (Java) Datenbankprogrammierung 5
DeltaPilot12 Datenbank connect Funktion Datenbankprogrammierung 7
J Oracle Datenbank-Tabelle per Combobox (oder ähnliches) auswählen Datenbankprogrammierung 3
N SQL Datenbank Spalte in Java Array Datenbankprogrammierung 2
J JAR-Datei und Datenbank Datenbankprogrammierung 8
Bluedaishi Datenbank Abfrage Datenbankprogrammierung 36
Kirby.exe Zeile aus der Datenbank holen wenn ein match besteht Datenbankprogrammierung 7
Kirby.exe Es werden keine Einträge in der Datenbank gemacht Datenbankprogrammierung 23
C Datenbank anlegen und über eine Website mit Daten füllen? Datenbankprogrammierung 25
J Welche Kriterien haben Einfluss auf die Geschwindigkeit einer Datenbank ? Datenbankprogrammierung 4
B Frage zu Datenbank Design bei Events (ZenDesk) Datenbankprogrammierung 1
M SQLite Datenbank mit SQLite Datenbankprogrammierung 7
C String in Datenbank einfügen Datenbankprogrammierung 11
C Keinen Zugrift auf Datenbank Datenbankprogrammierung 2
C Datenbank zugreifen Datenbankprogrammierung 10
L Auf Strato Datenbank zugreifen Datenbankprogrammierung 7
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
G Datenbank Statement Datenbankprogrammierung 22
M Datenbank editierbach machen in JTable Datenbankprogrammierung 13
S Datenbank MySQL und Java Datenbankprogrammierung 8
M H2 Verbindung zur Datenbank komplett schließen Datenbankprogrammierung 11

Ähnliche Java Themen


Oben