Grundlagen sitzen nicht bzw. nicht intelligent genug

GS-Paule

Mitglied
Guten Abend liebe Forumsmitglieder,

ich bin nun seit gut einer Woche dabei Java zu erlernen. Habe auch schon etwas Erfahrung in Sachen programmieren (VB). Jetzt wollte ich mich mal an einer richtigen Programmiersprachen auslassen und komme da nicht so richtig mit klar. Eigentlich gar nicht. :(
Als Projekt wollte ich eine Kunden-DB umsetzen und hänge da an allen Ecken und Enden. In VB kann bzw. würde ich das alles hintereinander weg schreiben. Wenn ich das aber richtig verstanden habe, ist das bei Java nicht so.
Ich habe ein Formular gebaut, dass ich mit den Kundendaten füllen möchte. Gefüllt bekomme ich das ganz auch. Nur weiß ich nicht, ob mein Ansatz soweit richtig ist.

Klasse: SQL
Java:
package de.asr.kundendb;

import java.sql.*;

public class Sql {

    private Connection conn;
    private Statement stmt;
    private ResultSet rSet;
    private int update;
    
    // Hostname
    private static String dbHost = "xxx";
    // Port -- Standard: 3306
    private static String dbPort = "3306";
    // Datenbankname
    private static String database = "xxx";
    // Datenbankuser
    private static String dbUser = "xxx";
    // Datenbankpasswort
    private static String dbPassword = "xxx";

    public boolean connect() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            System.out.println("Fehler bei ODBC-JDBC-Bridge" + e);
            return false;
        }
        try {
            conn = DriverManager.getConnection("jdbc:mysql://" + dbHost + ":"
                    + dbPort + "/" + database + "?" + "user=" + dbUser + "&"
                    + "password=" + dbPassword);
            //conn.close();
        } catch (SQLException e) {
            System.out.println("Fehler bei Tabellenabfrage" + e);
            return false;
        }
        return true;
    }

    public ResultSet abfrage(String query) {
        try {
            stmt = conn.createStatement();
            String sqlQuery = query;
            rSet = stmt.executeQuery(sqlQuery);

        } catch (SQLException e) {
            System.out.println("Fehler bei Tabellenabfrage" + e);

        }
        return rSet;
    }

    public boolean abfrageende() {
        try {
            stmt.close();
        } catch (SQLException e) {
            System.out.println("Fehler bei Tabellenabfrage" + e);
            return false;
        }
        return true;
    }

    public int update(String query) {
        try {
            stmt = conn.createStatement();
            String sqlUpdate = query;
            update = stmt.executeUpdate(sqlUpdate);
            stmt.close();
        } catch (SQLException e) {
            System.out.println("Fehler bei Tabellenabfrage" + e);
        }
        return update;
    }

    public boolean trennen() {
        try {
            conn.close();
        } catch (SQLException e) {
            System.out.println("Fehler bei Tabellenabfrage" + e);
            return false;
        }
        return true;
    }
}

Hauptformular:

Java:
package de.asr.kundendb;

import java.sql.*;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

public class HauptFenster extends javax.swing.JFrame {

    private static String jlabel1;

    /**
     * Creates new form HauptFenster
     */
    public HauptFenster() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jFrame1 = new javax.swing.JFrame();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jTextField3 = new javax.swing.JTextField();
        jTextField4 = new javax.swing.JTextField();
        jTextField5 = new javax.swing.JTextField();
        jTextField6 = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jLabel9 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        jTextField7 = new javax.swing.JTextField();
        jTextField8 = new javax.swing.JTextField();
        jTextField9 = new javax.swing.JTextField();
        jTextField10 = new javax.swing.JTextField();
        jTextField11 = new javax.swing.JTextField();
        jTextField12 = new javax.swing.JTextField();
        jLabel12 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
        jLabel13 = new javax.swing.JLabel();

        org.jdesktop.layout.GroupLayout jFrame1Layout = new org.jdesktop.layout.GroupLayout(jFrame1.getContentPane());
        jFrame1.getContentPane().setLayout(jFrame1Layout);
        jFrame1Layout.setHorizontalGroup(
            jFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 400, Short.MAX_VALUE)
        );
        jFrame1Layout.setVerticalGroup(
            jFrame1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(0, 300, Short.MAX_VALUE)
        );

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText("Anrede:");

        jLabel2.setText("Vorname:");

        jLabel3.setText("Name:");

        jLabel4.setText("Straße:");

        jLabel5.setText("PLZ / Ort:");

        jTextField1.setEditable(false);

        jTextField2.setEditable(false);

        jTextField3.setEditable(false);

        jTextField4.setEditable(false);

        jTextField5.setEditable(false);
        jTextField5.setToolTipText("");

        jTextField6.setEditable(false);

        jLabel6.setFont(new java.awt.Font("Lucida Grande", 1, 22)); // NOI18N
        jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel6.setText("XXX");

        jButton1.setText("Beenden");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("Daten holen");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jLabel7.setText("Tel. Privat:");

        jLabel8.setText("Handy:");

        jLabel9.setText("Tel. Arbeit:");

        jLabel10.setText("Fax:");

        jLabel11.setText("Mail:");

        jTextField7.setEditable(false);

        jTextField8.setEditable(false);
        jTextField8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField8ActionPerformed(evt);
            }
        });

        jTextField9.setEditable(false);

        jTextField10.setEditable(false);

        jTextField11.setEditable(false);

        jTextField12.setEditable(false);
        jTextField12.setFocusable(false);

        jLabel12.setText("Kundennr.: ");
        jLabel12.setBounds(new java.awt.Rectangle(0, 0, 0, 0));

        jTextArea1.setColumns(20);
        jTextArea1.setRows(5);
        jScrollPane1.setViewportView(jTextArea1);

        jLabel13.setText("Bemerkung:");

        org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jLabel6, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 554, Short.MAX_VALUE)
                    .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                        .add(0, 0, Short.MAX_VALUE)
                        .add(jButton2)
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                        .add(jButton1))
                    .add(layout.createSequentialGroup()
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                            .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
                                .add(org.jdesktop.layout.GroupLayout.LEADING, jLabel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .add(org.jdesktop.layout.GroupLayout.LEADING, jLabel12))
                            .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
                                .add(org.jdesktop.layout.GroupLayout.LEADING, jLabel5, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .add(org.jdesktop.layout.GroupLayout.LEADING, jLabel4, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .add(org.jdesktop.layout.GroupLayout.LEADING, jLabel3, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .add(org.jdesktop.layout.GroupLayout.LEADING, jLabel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 67, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                            .add(jLabel13))
                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                        .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                            .add(jTextField12, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 79, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                            .add(layout.createSequentialGroup()
                                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                                    .add(layout.createSequentialGroup()
                                        .add(jTextField5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 65, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                        .add(jTextField6, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 142, Short.MAX_VALUE))
                                    .add(jTextField4)
                                    .add(jTextField1)
                                    .add(jTextField2)
                                    .add(jTextField3))
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                                    .add(jLabel7, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .add(jLabel8, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .add(jLabel9, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .add(jLabel10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 69, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                                    .add(jLabel11, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 52, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING, false)
                                    .add(jTextField10, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 168, Short.MAX_VALUE)
                                    .add(jTextField8)
                                    .add(jTextField9)
                                    .add(jTextField11)
                                    .add(jTextField7)))
                            .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 468, Short.MAX_VALUE))
                        .add(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jLabel6)
                .add(18, 18, 18)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jTextField12, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(layout.createSequentialGroup()
                        .add(6, 6, 6)
                        .add(jLabel12, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 16, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel7)
                    .add(jTextField7, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel1))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jTextField2)
                    .add(jLabel9)
                    .add(jTextField8, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel2))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jTextField3, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel8)
                    .add(jTextField9, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel3))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jTextField4, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 28, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel10)
                    .add(jTextField10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel4))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jTextField5, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jTextField6, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel11)
                    .add(jTextField11, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel5))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                    .add(jScrollPane1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                    .add(jLabel13))
                .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
                .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
                    .add(jButton1)
                    .add(jButton2))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        
//Aktion Button schließen
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        System.exit(0);
    }                                        
//Aktion Button Daten holen
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        formFüllen();
    }                                        

    private void jTextField8ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
    }                                           



    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see [url=http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html]How to Set the Look and Feel (The Java™ Tutorials > Creating a GUI With JFC/Swing > Modifying the Look and Feel)[/url] 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(HauptFenster.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                new HauptFenster().setVisible(true);
            }
        });
    }
    
    
    
    
    
        //Formular füllen
    public void formFüllen() {
        Sql sql = new Sql();
        sql.connect();
        String query = "SELECT * FROM view_kunde Where `id_kunde` = 1";
        try {
            ResultSet rSet = sql.abfrage(query);
            while (rSet.next()) {
                
                jTextField1.setText(rSet.getString("Anrede"));
                jTextField2.setText(rSet.getString("Vorname"));
                jTextField3.setText(rSet.getString("Name"));
                jTextField4.setText(rSet.getString("Strasse") + " " + rSet.getString("Haus_Nr"));
                jTextField5.setText(String.valueOf(rSet.getInt("PLZ")));
                jTextField6.setText(rSet.getString("Ort"));
                jTextField7.setText(rSet.getString("Tel1_Vor") + " - " + rSet.getString("Tel1"));
                jTextField8.setText(rSet.getString("Tel2_Vor") + " - " + rSet.getString("Tel2"));
                jTextField9.setText(rSet.getString("Handy_Vor") + " - " + rSet.getString("Handy"));
                jTextField10.setText(rSet.getString("Fax_Vor") + " - " + rSet.getString("Fax"));
                jTextField11.setText(rSet.getString("Mail"));
                jTextField12.setText(String.valueOf(rSet.getInt("id_kunde")));
            }
        } catch (SQLException e) {
            System.out.println("Fehler bei Tabellenabfrage" + e);
        }
        sql.abfrageende();
        sql.trennen();
        
        
    }
    
    
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JFrame jFrame1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField10;
    private javax.swing.JTextField jTextField11;
    private javax.swing.JTextField jTextField12;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    private javax.swing.JTextField jTextField4;
    private javax.swing.JTextField jTextField5;
    private javax.swing.JTextField jTextField6;
    private javax.swing.JTextField jTextField7;
    private javax.swing.JTextField jTextField8;
    private javax.swing.JTextField jTextField9;
    // End of variables declaration                   
}

Die Daten hole ich mir erstmal über den Button.

Nun meine Frage, kann man das so machen? Oder muss man da eigentlich über die Klasse "Kunde" gehen?

Leider komme ich mit der Literatur die ich an der Hand habe nicht weiter bzw. bin dafür nicht inteligent genug.

Wer kann mir da freundlicherweise ein bisschen auf die Sprünge helfen bzw. auch gute Literatur empfehlen.

Vielen Dank im Voraus
 

Phash

Top Contributor
aaaaalso...
das kann man schon so irgendwie machen - aber du solltest dir deine Daten organsieren.

das heisst, wenn du Kunden speichern moechtest, dann speicher Kunden und sonst nichts.

in der Datenbank hast du eine Tabelle Kunde, und in deniem Java Programm hast du auch eine Klasse Kunde
falls du noch weitere Infos hast, wie Adresse (eigene Tabellen halt), dann brauchst du diese auch in Java.

leider hab ich gar keine Erinnerung mehr an JDBC und wie man damit in ne DB schreibt... ich empfehle Hibernate als OR Mapper


Prinzip deines Programms:

Oberflaeche mit Anzeige von Kundendaten.
Moeglichkeit zum laden alter und anlegen neuer Daten.
Deine Programmlogik fragt deine Datenzugriffsschicht (hier die Klasse Sql, die schlecht benannt ist) nach diesen Daten und liefert diese bzw weisst die Datenzugriffsschicht an dies zu tun - oder weist sie eben an, sie zu persistieren.
 

GS-Paule

Mitglied
Hallo,

das Prinzip hast du schon richtig erkannt. Nochmal eine kleine Umschreibung:
In der DB habe ich bis jetzt folgende grundlegenden Tabellen
- Kunde
- Kundendaten
- Fahrzeuge

In der Tabelle Kunde sind Anrede, Name, Vorname, GebDat und Bemerkung.
Kundendaten enthält folgende "bewegliche" Daten: Straße, Haus_Nr, PLZ, Ort, Telefon, Fax, Mail.
Fahrzeuge: Kennzeichen, Hersteller Typ, Modell, Ident, Erstzulassung, KBA, HU, Hubraum, KW, PS, Bemerkung und aktiv falls das Auto aus der DB fällt.

Diese Daten sollen nun in einer Oberfläche verwaltet werden. Neue Kunden, Kundendaten ändern, Fahrzeuge verwalten etc.

Danke Dir auch schon mal für den Tipp mit Hibernate. Habe ich mir gleich mal besorgt uns schaue mal rein.
 

Phash

Top Contributor
gibt es verknuepfungen zwischen den Tabellen?

diese muessen auch abgebildet werden.

Mit Hibernate speicherst du die Daten dann direkt als Objekte ab (ich wuerde dir da die tutorials auf hibernate org empfehlen)
 

GS-Paule

Mitglied
Ja, die Tabellen sind untereinander verknüpft.

Kunde zu Kundendaten und Kunden 1:N Fahrzeuge.

Bin gerade noch nebenbei an Hibernate dran.. :autsch:
 

Phash

Top Contributor
Hibernate ist erstmal etwas komplexer, wenn man aber mal die Grundlage dazu hat, kann man den ganzen DB Krams "vergessen"...
 

GS-Paule

Mitglied
Der DB Kram macht mir keine Sorgen. Die Daten bekomme ich aus der DB bzw. kann sie wie gewünscht zusammenstellen.
Was mir Probleme bereitet ist das Java an sich. Irgendwie verstehe ich das nicht mit den Klassen, Methoden und warum ich das immer hin und her schieben muss.
Und bisher habe ich auch keine Literatur gefunden die mir das verständlich erklärt. :(
Daher hatte ich gedacht, dass es mit einen Projekt einfacher zu lernen ist, da die Beispiele aus den Büchern immer etwas abstrakt sind bzw.immer so zusammen gestellt sind wie man sie gerade braucht (nicht zusammenhängend).
 

Phash

Top Contributor
dann empfehle ich dieses Buch: Java von Kopf bis Fuß

Java ist eigentlich ganz einfach.

Wenn du verstehst, was "Objekt Orientierte Programmierung" bedeutet, wird dein Leben leichter.


Zuerst, du schiebst nichts hin und her, du organisierst :)


Organisiere deine Daten und Methoden so, wie es logisch und sinnvoll ist.
Organisiere dich in Schichten.

Eine Schicht bietet die Oberflaeche an. Diese Schicht berechnet nichts und hat auch keine eigenen Daten - nur das, was sie zum anzeigen braucht.
Eine Schicht fuer den Datenzugriff. Diese Schicht berechnet nichts, sie bietet nur Daten an.
Es kann sein, dass hier ein wenig DB Logik enthalten ist - die DB bietet eben viele Dinge an, um die man sich im Programm nicht kuemmern muss. z.b. "Gib mir alle Entitaeten, die diesem Kriterium entsprechen in dieser Reihenfolge" - das darf diese Schicht machen. Sie bietet nach aussen Methoden an, die Listen mit Objekten oder Objekte liefern.
(Eine Schicht fuer die Daten an sich. Hier sind lediglich die DatenKlassen spezifiziert - quasi "Dumme Klassen" ohne Logik. Dieses Klassen bieten nur Zugriffsmoeglichkeiten auf ihre Variablen an (getter und setter) - Beans.

und dann gibt es die Logikschicht.
Diese wird meist von der GUI angesprochen. Meistens durch Events.
Sie implementiert die Funktionen, die die GUI benoetigt.
Dazu holt sie sich die Daten aus der Datenzugriffsschicht.

Man versucht diese Schichten so locker wie moeglich aneinander zu binden, um einen spaetern Austausch zu ermoeglichen.

Beispielsweise hast du eine Oberflaeche, die den Gregorianischen Kalender anzeigen kann und hierdrin Termine darstellt.

Nun hast du eine Logik, die dir die Termine liefert.

Jetzt moechtest du aber das ganze als MajaKalender(!) haben.
Du muesstest nun die Logik veraendern.
Oder, du schreibst eine neue Logik, die die gleichen Schnittstellen (Interface) bedient und kannst sie zur Laufzeit austauschen.
Vorteil: du musst einige Sachen nicht neu schreiben und du musst vorhandenen, bestehenden Code nicht anfassen.


Generell gilt: alles was funktioniert soll nicht angefasst werden, ausser man refactored um den Code sauberer zu machen (CleanCode)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
brypa Java Grundlagen Java Basics - Anfänger-Themen 97
M Sammelsarium an Grundlagen Grundlagen Fragen Java Basics - Anfänger-Themen 11
T Java Grundlagen Java Basics - Anfänger-Themen 13
L Viele Fragen zu den Grundlagen Java Basics - Anfänger-Themen 5
C Mein Video zu Java Grundlagen Java Basics - Anfänger-Themen 8
G Grundlagen der PS-Java Java Basics - Anfänger-Themen 8
J OOP Theoretische Grundlagen Java Basics - Anfänger-Themen 5
G OOP [Eilig] Biete 10€ für Lösung von 2 Grundlagen-Aufgaben Java Basics - Anfänger-Themen 6
B Lernzeit für C++ und Java Grundlagen Java Basics - Anfänger-Themen 11
D Erste Schritte JEE Grundlagen lernen Java Basics - Anfänger-Themen 3
W Variablen Pointer Grundlagen Java Basics - Anfänger-Themen 30
J Compiler-Fehler Probleme bei Grundlagen Java Basics - Anfänger-Themen 12
B Grundlagen von Methoden an folgendem Beispiel Java Basics - Anfänger-Themen 52
D Quelle für Java-Grundlagen gesucht Java Basics - Anfänger-Themen 16
J Anfängerfrage zu Grundlagen von Packages Java Basics - Anfänger-Themen 7
D Grundlagen - Operatoren Java Basics - Anfänger-Themen 5
B Grundlagen zu Java Java Basics - Anfänger-Themen 18
G Grundlagen Bild laden und zeichen (anzeigen) Java Basics - Anfänger-Themen 2
7 Applets - einfachste Grundlagen Java Basics - Anfänger-Themen 24
M [Suche] Grundlagen der Java-Programmierung Java Basics - Anfänger-Themen 17
C Grundlagen: Methoden Java Basics - Anfänger-Themen 4
A Grundlagen Array Java Basics - Anfänger-Themen 4
T Grundlagen ganz am Anfang Java Basics - Anfänger-Themen 12
O Vererbung Grundlagen Java Basics - Anfänger-Themen 4
megachucky JDBC-Grundlagen: Verständnisprobleme Java Basics - Anfänger-Themen 31
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
S Wie debugge ich dies am besten: SingleThreadExecutor führt Task nicht aus..? Java Basics - Anfänger-Themen 29
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K TicTacToe belegtes feld nicht neu besetzbar Java Basics - Anfänger-Themen 1
K TicTacToe belegtes Feld nicht neu besetzbar Java Basics - Anfänger-Themen 3
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
missy72 Erste Schritte (nicht) Deterministischer endlicher Automat Java Basics - Anfänger-Themen 9
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
P Netbeans installation geht nicht Java Basics - Anfänger-Themen 26
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
T HashMap Lsite gibt die sachen nicht aus wie gewollt. Java Basics - Anfänger-Themen 3
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
T scanner nicht erkannt Java Basics - Anfänger-Themen 3
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
Darkherobrine9 Import klappt nicht Java Basics - Anfänger-Themen 7
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
C Kann mir jemand sagen warum ich nicht mal rechnen kann ? Java Basics - Anfänger-Themen 32
K Java Lotto Spiel; ich komme nicht weiter Java Basics - Anfänger-Themen 15
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
T Wie kann man es machen das ein Objekt nicht übermalt wird Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
heinrich172 Methoden Trotz gleichem Element stimmt Vergleich nicht? Java Basics - Anfänger-Themen 7
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
K warum kann ich das Objekt nicht erstellen ? Java Basics - Anfänger-Themen 2
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
J Meine Mails gehen nicht raus Java Basics - Anfänger-Themen 8
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
S Ist JDK jetzt free oder nicht? Java Basics - Anfänger-Themen 5
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben