Derby/JavaDB Adressbuch mit search-button

J

javiX

Gast
Hallo Leute,

ich habe da ein problem, bei dem ich nicht weiter komme

Ich muss ein Adressbuch erstellen, bei dem ich einen Eintrag hinzufügen, löschen, ändern kann und es muss auch noch nach einem Eintrag gesucht werden können.
Das mit der Suche nach einem Eintrag funktioniert garnicht bzw. ich hab keinen Plan was ich da machen muss.

Ich schreibe das Programm mit Netbeans und verwende GUI.

Ich hoffe ihr könnt mir helfen!

Danke im voraus.


Hier ist mein Code:

Java:
package guiconnectdb;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.JTable;
import javax.swing.JViewport;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author sach
 */
public class FensterGUI extends javax.swing.JFrame {

    private ArrayList titlesData = new ArrayList();

    /** Creates new form Fenster */
    public FensterGUI() {
        initComponents();
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            java.sql.Connection conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/test",
                    "root",
                    "");
            Statement stm = conn.createStatement();
            ResultSet rs = stm.executeQuery("Select * From test.personen");

            this.saveReultSet(rs);
            this.refreshTable();

            // Verbindung zur DB trennen
            rs.close();
            stm.close();
            conn.close();

        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }

Add-Button

Java:
DbPersonen personen = new DbPersonen();
        NebenfensterDialogGUI nebenfenster = new NebenfensterDialogGUI(this, true, personen);

        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            java.sql.Connection conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/test",
                    "root",
                    "");
            Statement stm = conn.createStatement();
            stm.executeUpdate("INSERT INTO test.personen (vorname, nachname) VALUES ('" + personen.getVorname() + "','" + personen.getNachname() + "')");

            ResultSet rs = stm.executeQuery("Select * From test.personen");

            this.titlesData = new ArrayList();
            this.saveReultSet(rs);

            //this.titlesData.add(personen);
            this.refreshTable();

      

            stm.close();
            conn.close();

        } catch (Exception ex) {
            ex.printStackTrace();
        }

        // stm.executeUpdate("UPDATE test.personen SET vorname='Max23', nachname='Muster2' WHERE id=")

        refreshTable();

Delete-Button

Java:
JViewport x = this.jScrollPane1.getViewport();
        JTable y = (JTable) x.getComponent(0);
        int row = y.getSelectedRow();
        if (row != -1) {
            DbPersonen personen = (DbPersonen) this.titlesData.get(row);
             try {
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                java.sql.Connection conn = DriverManager.getConnection(
                        "jdbc:mysql://localhost:3306/test",
                        "root",
                        "");
                Statement stm = conn.createStatement();
                stm.executeUpdate("DELETE FROM test.personen WHERE id='" + personen.getId() + "'");

                ResultSet rs = stm.executeQuery("Select * From test.personen");

                this.titlesData.remove(row);
            
                this.refreshTable();

                // Verbindung zur DB trennen

                stm.close();
                conn.close();

            } catch (Exception ex) {
                ex.printStackTrace();
            }

            // stm.executeUpdate("UPDATE test.personen SET vorname='Max23', nachname='Muster2' WHERE id=")

            refreshTable();
        }

Change-Button

Java:
JViewport x = this.jScrollPane1.getViewport();
        JTable y = (JTable) x.getComponent(0);
        int row = y.getSelectedRow();
        if (row != -1) {
            DbPersonen personen = (DbPersonen) this.titlesData.get(row);
            NebenfensterDialogGUI nebenfenster = new NebenfensterDialogGUI(this, true, personen);

            try {
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                java.sql.Connection conn = DriverManager.getConnection(
                        "jdbc:mysql://localhost:3306/test",
                        "root",
                        "");
                Statement stm = conn.createStatement();
                stm.executeUpdate("UPDATE test.personen SET vorname='" + personen.getVorname() + "', nachname='" + personen.getNachname() + "' WHERE id='" + personen.getId() + "'");


                this.refreshTable();

                // Verbindung zur DB trennen

                stm.close();
                conn.close();

            } catch (Exception ex) {
                ex.printStackTrace();
            }

            // stm.executeUpdate("UPDATE test.personen SET vorname='Max23', nachname='Muster2' WHERE id=")

            refreshTable();
        }
 

Final_Striker

Top Contributor
Schon mal darüber nachgedacht doppelten Code in Methoden auszulagern?
Außerdem brachst du nicht ständig neue Datenbankverbildungen aufzubauen, eine reicht auch aus.

Für die Suche kannst du z.B LIKE verwenden. SQL LIKE
 

Ähnliche Java Themen

Neue Themen


Oben