# wie soll ich eine bean in mein programm integriegren?



## cluster (12. Nov 2006)

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


```
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 (12. Nov 2006)

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:


```
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;
    }
}
```


```
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;
}
```


----------



## cluster (14. Nov 2006)

Hallo André,

vielen Dank für deine Antwort und deine Hilfe.

Werde es gleich testen.

Grüße
cluster


----------

