wie soll ich eine bean in mein programm integriegren?

Status
Nicht offen für weitere Antworten.

cluster

Mitglied
Hallo liebe User,

ich habe probleme es zu verstehen, vielleicht kann mir jemand weiterhelfen:

wir hatten die aufgabe, eine Dialogklasse und eine Klasse die die Verbindungen zur Datenbank aufnimmt zu machen. Das hat auch wunderbar geklappt. aber wir sollen auch Beans machen, von Pflanzen, in der Name, Nr., Farbe, objektid nummer und so sind.

Mein Problem: wozu brauche ich das? und was macht es? ich meine, ich bekomme doch auch so alle Daten die ich brauche.
und wie baue ich die Beans jetzt ein? muss ich eine dritte klasse mit beans anlegen, die den gleichen Tabellennamen wie meine tabelle pflanzen haben?

Zum Verständnis die zwei Klassen die ich habe. Vorab, wir sollten eine Tabelle mit Usern und Passwort und eine zweite Tabelle mit Pflanzen anlegen. Im Programm soll der User sich mit Namen und Passwort anmelden und einen Pflanzennamen eingeben und alle Daten zu der Pflanze sollen angezeigt werden.

Für eure Hilfe und eure Tipps bin ich wirklich dankbar.

liebe Grüße
cluster

Code:
import java.sql.*;

import javax.swing.JOptionPane;


public class JdbcStarterPflanzencenter //Dialogklasse
{
  public static void main(String[] args) throws SQLException
  {  
      steuereDialog();
        
  }
      
    public static void steuereDialog()throws SQLException
    {
      String c_user;   
      String c_passwort;  
      JdbcTesterPflanzencenter pfc = new JdbcTesterPflanzencenter();
      c_user = JOptionPane.showInputDialog("Bitte Name eingeben");
      c_passwort = JOptionPane.showInputDialog("Bitte Passwort eingeben");
      
      pfc.istUserRegistriert(c_user,c_passwort);
      if (pfc.istUserRegistriert(c_user, c_passwort))
      {
          JOptionPane.showMessageDialog(null, "Zugriff gestattet!");
          String pfname = JOptionPane.showInputDialog("Bitte Pflanze eingeben");
          pfc.getPflanze(pfname);
         
      }
      else
      {
      JOptionPane.showMessageDialog(null, "Username oder Passwort ist falsch");
      }
        
          
      
      
    }
    
}  


Zweite KLasse:
import java.sql.*;

import javax.swing.JOptionPane;


public class JdbcTesterPflanzencenter

{
    static Statement stmt;
   
    public JdbcTesterPflanzencenter()throws SQLException
 
  {
  
  DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver() );
   Connection con = DriverManager.getConnection(
        "jdbc:oracle:thin:@bla bla bla");
   stmt = con.createStatement();
  }     
    
  public boolean istUserRegistriert(String ss_Name, String ss_Passwort)throws SQLException
  { 
    boolean ss_istUserRegistriert = false;
    String name;
    String passwort;
    ResultSet rset  = stmt.executeQuery("SELECT * FROM DB_USER"); 
    while (rset.next())
      {
        name = (rset.getString("USER_NAME"));
        if (ss_Name.equalsIgnoreCase(name))//Bedingung
        {                    
            passwort = (rset.getString("USER_PASS"));
            if (ss_Passwort.equalsIgnoreCase(passwort))
            {
                ss_istUserRegistriert = true;
            }//endif  
           
        }//endif
         
            
      }//endewhile 
        rset.close();
        return ss_istUserRegistriert;
        
  }   
  public static void getPflanze(String inputPflanzenname)throws SQLException 
                                
  {
      String pflanzenname;
      ResultSet rset = stmt.executeQuery("SELECT * FROM PFLANZEN");
      while (rset.next())
      {
          pflanzenname = (rset.getString("PFLANZENNAME"));
          if(inputPflanzenname.equalsIgnoreCase(pflanzenname))
          {
              String sorte        = (rset.getString("SORTE"));
              String farbe        = (rset.getString("FARBE"));
         
              JOptionPane.showMessageDialog(null, pflanzenname + 
                                   ", " + sorte + ", " + farbe);
            }//endif
                   
      }//endwhile
       rset.close(); 
   } 
  
   

}
 

André Uhres

Top Contributor
cluster hat gesagt.:
..wir sollen auch Beans machen, von Pflanzen, in der Name, Nr., Farbe, objektid nummer und so sind.
Mein Problem: wozu brauche ich das? und was macht es? ..

Beans haben Properties die über spezielle get-, set- und is-Methoden angesprochen werden.
Der Vorteil ist, daß sie in die Palette eines visuellen Application Builders eingefügt werden können und dann
dem Entwickler jederzeit zur Verfügung stehen um in irgendeine Anwendung per Mausklick eingebaut zu werden.

Beispiel einer Bean und einer Anwendung:

Code:
package pflanzen;
/*
 * Pflanze.java
 * Dies ist eine Bean.
 */
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
public class Pflanze {
    private Statement stmt;
    public Pflanze() {
        try {
            DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver() );
            Connection con = DriverManager.getConnection(
                    "jdbc:oracle:thin:@bla bla bla");
            stmt = con.createStatement();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
    /**
     * Holds value of property pflanze.
     */
    private String[] pflanze;
    
    /**
     * Getter for property pflanze.
     * @return Value of property pflanze.
     */
    public String[] getPflanze() {
        return this.pflanze;
    }
    
    /**
     * Setter for property pflanze.
     * @param pflanze New value of property pflanze.
     */
    public void setPflanze(String[] pflanze) {
        String inputPflanzenname = pflanze[0];
        String pflanzenname = "";
        String sorte = "";
        String farbe = "";
        ResultSet rset;
        try {
            rset = stmt.executeQuery("SELECT * FROM PFLANZEN");
            while (rset.next()) {
                pflanzenname = (rset.getString("PFLANZENNAME"));
                if(inputPflanzenname.equalsIgnoreCase(pflanzenname)) {
                    sorte        = (rset.getString("SORTE"));
                    farbe        = (rset.getString("FARBE"));
                }//endif
            }//endwhile
            rset.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        this.pflanze = new String[]{inputPflanzenname, sorte, farbe};
    }
    
    /**
     * Holds value of property userRegistriert.
     */
    private boolean userRegistriert;
    
    /**
     * Getter for property userRegistriert.
     * @return Value of property userRegistriert.
     */
    public boolean isUserRegistriert() {
        return this.userRegistriert;
    }
    
    /**
     * Setter for property userRegistriert.
     * @param userRegistriert New value of property userRegistriert.
     */
    public void setUserRegistriert(boolean userRegistriert) {
        String ss_Name = getUserIdentity()[0];
        if(ss_Name == null) return;
        String ss_Passwort = getUserIdentity()[1];
        if(ss_Passwort == null) return;
        userRegistriert = false;
        String name;
        String passwort;
        ResultSet rset;
        try {
            rset = stmt.executeQuery("SELECT * FROM DB_USER");
            while (rset.next()) {
                name = (rset.getString("USER_NAME"));
                if (ss_Name.equalsIgnoreCase(name)){//Bedingung
                    passwort = (rset.getString("USER_PASS"));
                    if (ss_Passwort.equalsIgnoreCase(passwort)) {
                        userRegistriert = true;
                    }//endif
                }//endif
            }//endewhile
            rset.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        this.userRegistriert = userRegistriert;
    }
    
    /**
     * Holds value of property userIdentity.
     */
    private String[] userIdentity;
    
    /**
     * Getter for property userIdentity.
     * @return Value of property userIdentity.
     */
    public String[] getUserIdentity() {
        return this.userIdentity;
    }
    
    /**
     * Setter for property userIdentity.
     * @param userIdentity New value of property userIdentity.
     */
    public void setUserIdentity(String[] userIdentity) {
        this.userIdentity = userIdentity;
    }
}

Code:
package jdbc;
/*
 * PflanzeTest.java
 * Anwendung, benutzt die Bean "Pflanze"
 */
import java.awt.*;
import java.awt.event.*;
import java.sql.SQLException;
import javax.swing.*;
import pflanzen.*;
public class PflanzeTest extends JFrame {
    public PflanzeTest() {
        super("Pflanze Test");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400,300);
        setLocationRelativeTo(null);
        pfc = new Pflanze();//<------------hier wird die Bean erzeugt-----------
        toolbar = new JToolBar();
        btAnmelden = new JButton();
        btAnzeigen = new JButton();
        btAnmelden.setText("Anmelden");
        getRootPane().setDefaultButton(btAnmelden);
        btAnmelden.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                btAnmeldenActionPerformed(evt);
            }
        });
        toolbar.add(btAnmelden);
        btAnzeigen.setText("Anzeigen");
        btAnzeigen.setEnabled(false);
        btAnzeigen.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                btAnzeigenActionPerformed(evt);
            }
        });
        toolbar.add(btAnzeigen);
        getContentPane().add(toolbar, BorderLayout.PAGE_START);
    }
    private void btAnzeigenActionPerformed(ActionEvent evt) {
        try {
            anzeigen();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
    private void btAnmeldenActionPerformed(ActionEvent evt) {
        try {
            anmelden();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
    private void anmelden()throws SQLException {
        String c_user;
        String c_passwort;
        c_user = JOptionPane.showInputDialog("Bitte Name eingeben");
        c_passwort = JOptionPane.showInputDialog("Bitte Passwort eingeben");
        pfc.setUserIdentity(new String[]{c_user,c_passwort});//<------hier wird eine Property gesetzt
        pfc.setUserRegistriert(true);
        if (pfc.isUserRegistriert()) {//<----------------------------hier wird eine Property abgefragt
            JOptionPane.showMessageDialog(null, "Zugriff gestattet!\n" +
                    "Willkommen "+pfc.getUserIdentity()[0]);
            btAnmelden.setEnabled(false);
            btAnzeigen.setEnabled(true);
            getRootPane().setDefaultButton(btAnzeigen);
        } else {
            JOptionPane.showMessageDialog(null, "Username oder Passwort ist falsch");
        }
    }
    private void anzeigen()throws SQLException {
        String sorte = "";
        String farbe = "";
        String pflanzenname = "";
        if (pfc.isUserRegistriert()) {
            String pfname = JOptionPane.showInputDialog("Bitte Pflanze eingeben");
            if(pfname == null) return;
            pfc.setPflanze(new String[]{pfname});
            pflanzenname = pfc.getPflanze()[0];
            sorte = pfc.getPflanze()[1];
            farbe = pfc.getPflanze()[2];
            JOptionPane.showMessageDialog(null, pflanzenname +
                    ", " + sorte + ", " + farbe);
        }
    }
    public static void main(String args[]) {
        new PflanzeTest().setVisible(true);
    }
    private JButton btAnmelden;
    private JButton btAnzeigen;
    private JToolBar toolbar;
    private Pflanze pfc;
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Variable in main soll mit der generierten Zahl aus einer Methode ausgefüllt werden Datenbankprogrammierung 3
T MySQL Datetime wird auf Sekunden gerundet, soll es aber nicht Datenbankprogrammierung 2
V was soll den bidee das bedeuten! Datenbankprogrammierung 3
P ODBC verbindung Java soll auf access mdb datei zugreifen Datenbankprogrammierung 2
G Aktualisierung Access-DB soll Ausgabe aktualisieren Datenbankprogrammierung 3
B Wie kann ich eine Jtable mit Inhalt einer SQL Abfrage füllen Datenbankprogrammierung 14
I SaaS Applikation: pro Kunde eine Datenbank / Schema oder eine DB für alle Kunden? Datenbankprogrammierung 76
Zrebna PostgreSQL-Query in eine MicrosoftSQL-Query konvertieren - chatGPT hilft nur bedingt. Datenbankprogrammierung 3
T Spring MongoDB: Prüfen ob bereits eine Email existiert Datenbankprogrammierung 15
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Probleme bei Überführung von SQL-Code in eine HQL-Abfrage Datenbankprogrammierung 3
Zrebna Wie mittels PL/SQL eine Datenbankverbindung blockieren? Datenbankprogrammierung 6
berserkerdq2 Was genau muss ich bei date eingeben, wenn ich in Java eine Spalte definiere, die date ist? Datenbankprogrammierung 1
pkm PostgreSQL Kann mit mybatis einen Parameter für eine postgreSQL-Abfrage nicht übergeben. Datenbankprogrammierung 5
Kirby.exe Eine Tabelle updaten Datenbankprogrammierung 16
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
Z Aus zwei bestehenden Table eine zusätzliche Gemeinsame machen (JavaFX) Datenbankprogrammierung 21
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
pkm PostgreSQL Auf eine Spalte kann aus einem Teil der SQL-Aussage nicht zugegriffen werden Datenbankprogrammierung 3
F Mapping einer SQL Abfrage in eine Klasse Datenbankprogrammierung 4
H suche eine Login system Bibliothek für Java Datenbankprogrammierung 5
C Datenbank anlegen und über eine Website mit Daten füllen? Datenbankprogrammierung 25
G Eine Spalte in xampp als Typ array erstellen - ein array mit "insert" hinzufügen. Datenbankprogrammierung 3
F Create Table - Habe ich eine schwache Entität erzeugt ? Datenbankprogrammierung 4
Dimax MySQL Trigger für eine Spalte Datenbankprogrammierung 5
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
D MySQL Eibinden des "mysql-connector" in eine fertige Jar Datenbankprogrammierung 3
P JSP - Daten aus 2 Tabellen in eine neue Tabelle einfügen Datenbankprogrammierung 1
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
S MySQL JTable zeigt nach Datenbankabfrage eine Spalte zu viel an Datenbankprogrammierung 0
Thallius MySQL Tabelle splitten aber wie eine abfragen? Datenbankprogrammierung 10
B MySQL Eine Art Sverweis Datenbankprogrammierung 27
O HSQLDB Eine Entität, mehrere Tabellen Datenbankprogrammierung 8
B SQL-Statement Prüfen ob eine Spalte einen Wert enthält Datenbankprogrammierung 2
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
L0MiN Wie kann ich eine bestimmte Seite aus verschiedenen Excel-Tabellen in eine neue Exceldatei kopieren? Datenbankprogrammierung 1
N Wie in Java Zugriffe und Updates auf eine Datenbank regeln ? Datenbankprogrammierung 1
E Wie kann ich aus diesem XML eine XMLTABLE-Funktion bauen? Datenbankprogrammierung 3
E Wie kann man mit einer ID-Spalte über eine Parameterübergabe auf eine Seite verweisen? Datenbankprogrammierung 17
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
M Warum ist es suboptimal viele Indexe auf eine Datenbanktabelle zu setzen? Datenbankprogrammierung 4
L Datenmodell erstellen für eine Nutzertanalyse Datenbankprogrammierung 1
serjoscha MySQL Eine Instanz von eigenem DBWrapper -> Fehler durch mehrfachbenutzung möglich? Datenbankprogrammierung 2
S HSQLDB Verbieten eines update auf eine bestimmte reihe Datenbankprogrammierung 4
V HSQLDB Insert in eine Tabelle mit Autoincrement Datenbankprogrammierung 2
H Grosse Menge an Daten in eine Datenbank Datenbankprogrammierung 32
P MySQL eine richtige Datenbank für einen routenplaner erstellen Datenbankprogrammierung 2
D SQL Update auf eine Query möglich? Datenbankprogrammierung 4
S SqlObject - eine objektorientierte Art SQL-Statements zu schreiben. Datenbankprogrammierung 4
C Mit jsp über Java eine DB Abfrage durchführen --> java.lang.ClassNotFoundException Datenbankprogrammierung 4
K SQLite CSV-Datei einlesen in eine Datenbank Datenbankprogrammierung 7
E Datenbank Abfragen in eine GUI schreiben Datenbankprogrammierung 8
A Problem mit Eintragen von Daten in eine Datenbank mittels DAO Datenbankprogrammierung 4
L MySQL MySql in eine Application einbinden? Datenbankprogrammierung 18
R MySQL Voraussetzungen für eine erfolgreiche Datenbankanbindung mittels JDBC Datenbankprogrammierung 2
H Derby/JavaDB Eine verschlüsselte Derby-Datenbank wieder entschlüsseln Datenbankprogrammierung 4
D Was passiert bei absolut zeitgleichem Zugriff auf eine Tablerow Datenbankprogrammierung 7
I Belastet es das System zu sehr einen Timer jede 0.2 Sekunden eine DB Abfrage machen zu lassen? Datenbankprogrammierung 9
I Zugriff auf eine Datenbank auf dem Webserver Datenbankprogrammierung 2
F H2:Wie kann man insert eine Reihe "int" wert als blob in table? Datenbankprogrammierung 12
J mal wieder eine Frage zu parallelen Transaktionen.. Datenbankprogrammierung 2
Screen Ich suche eine SQLDatenbank ohne JDBC-Treiber Datenbankprogrammierung 12
H Derby/JavaDB SQLException wenn die Datenbank in eine Jar gepackt wurde. Datenbankprogrammierung 6
turmaline [Hibernate] @OneToMany - Eine referenzierte Tabelle abfragen Datenbankprogrammierung 11
S Werte aus Datenbank auslesen und in eine bestimmte Excelzelle eintragen Datenbankprogrammierung 2
T Wer kann mir eine Datenbank empfehlen Datenbankprogrammierung 13
DStrohma MS SQL Server 2005 + Java: Immer nur eine aktive Verbindung erlaubt? Datenbankprogrammierung 5
D MySQL Wie schreibe ich in eine Datenbank? Datenbankprogrammierung 8
J String[] in eine SQL-Anweisung implementieren Datenbankprogrammierung 13
Q Access Datenbank in eine Internetseite einbinden Datenbankprogrammierung 2
J Über einen Button eine SQL-DB aussuchen Datenbankprogrammierung 3
O eine Tabelle hat mehrere PrimKey mit dem selben Wert Datenbankprogrammierung 9
R Connection Problem für eine externe DB mit Java (JDBC) Datenbankprogrammierung 9
M Zugriff auf eine Access-Datenbank innerhalb eines jar-Files Datenbankprogrammierung 7
N Wie kann ich Zugriff auf eine MS Access DB (mit JDBC) über Netzwerk erreichen? Datenbankprogrammierung 7
G Wie sieht eine Datenbankverbindung mit jndi aus? Datenbankprogrammierung 3
T eine Datenbank updaten Datenbankprogrammierung 6
C Prüfen, ob eine MySQL-Tabelle bereits existiert Datenbankprogrammierung 7
E Wie auf eine MySql Datenbank zugreifen Datenbankprogrammierung 25
D Werte mit java programm in eine Datenbank einlesen Datenbankprogrammierung 7
T JPQL Query für eine Tabellenansicht Datenbankprogrammierung 2
B Wie persistiert man eine Tree-ähnliche Datenbankstruktur? Datenbankprogrammierung 2
M Aus einem Applet eine Datenbankverbindung starten? Datenbankprogrammierung 26
R Datenbankstruktur für eine renn simulation Datenbankprogrammierung 3
H Wie kann ich eine Datenbank Connection aus XML-Datei lesen! Datenbankprogrammierung 2
G Wie baut man eine Anwendung mit DB Zugriff Datenbankprogrammierung 3
S Als Rückgebewert eine Liste von Werten? Datenbankprogrammierung 3
A Auslesen von Werten aus der DB in eine csv-Datei Datenbankprogrammierung 4
O Oracle 11g wirft bei 90 % der installation eine Exception ? Datenbankprogrammierung 5
T Recordsets in eine JTable einlesen mit Netbeans 6.0 Datenbankprogrammierung 2
R Warum kommt eine Exception bei instanceof ? Datenbankprogrammierung 4
M Tabelle von einer Datenbank in eine Andere Datenbankprogrammierung 4
G Inhalt eine Clob Feldes zw. zwei DB's kopieren Datenbankprogrammierung 2
A Einlesen einer csv-Datei in eine H2-Datenbank Datenbankprogrammierung 3
A Kriterium für eine JList neu definieren Datenbankprogrammierung 3
A Probleme beim Schreiben in eine CSV-Datei aus einer H2-DB Datenbankprogrammierung 2
G Import einer csv-Datei in eine H2-Database Datenbankprogrammierung 12
J Warum ist es aufwendig eine Datenbankverbindung herzustellen Datenbankprogrammierung 3
M Mit Java .txt-Datei in eine Datenbank einlesen lassen Datenbankprogrammierung 33
S Zugriff auf eine große Datenmenge von MS Access per JDBC Datenbankprogrammierung 11

Ähnliche Java Themen

Neue Themen


Oben