# Daten aus Datenbank holen



## Blubdub (27. Mai 2011)

Ich habe folgendes Problem: Ich arbeite zum Spaß an einer GUI mit der ich Daten in eine Datenbank einschreiben kann. In der Datenbank gibt es atm nur Patient und Krankenkasse. Jetzt will ich aber, dass er nach dem drücken des anlegen buttons, erstens die daten in die Patient Tabelle einschreibt und dann mithilfe des Verweises der Krankenkassennummer, mir den Krankenkassenname aus dem Table Krankenkasse abholt und in die GUI einträgt, sozusagen automatisch ein leeres Textfeld (das des Kassennamens) füllt. Ich hoffe man verstehts...


----------



## F.S.WhiTeY (27. Mai 2011)

Naja so wie du es reinschribst holst du es auch wieder raus... 

```
Connection Con;
    Statement Stmt;
    try{
      Class.forName("com.mysql.jdbc.Driver").newInstance();

      Con = DriverManager.getConnection(
              "jdbc:mysql://SERVER/DATENBANK",
              "USER","PW");
      Stmt = Con.createStatement();

      ResultSet result = Stmt.executeQuery(
         "SELECT * FROM TABELLE WHERE Krankenkasse =" + Objekt.kassennummer );
      while (result.next()){
        System.out.println(result.getString("name"));
      }
      Con.close();
    }
    catch (Exception sqlEx){
      System.err.println(sqlEx);
    }
```


----------



## maki (27. Mai 2011)

*verschoben*


----------



## Blubdub (27. Mai 2011)

Wäre es auch möglich den Wert direkt in das Attribut des Patienten reinzuschreiben? also iwie 

einPatient.setKKName(Select...)?


----------



## Gast2 (27. Mai 2011)

Blubdub hat gesagt.:


> Wäre es auch möglich den Wert direkt in das Attribut des Patienten reinzuschreiben?



Ja



Blubdub hat gesagt.:


> also iwie
> 
> einPatient.setKKName(Select...)?



Aber nicht so 

So z.B. geht es:

```
Connection Con;
    Statement Stmt;
    try{
      Class.forName("com.mysql.jdbc.Driver").newInstance();
 
      Con = DriverManager.getConnection(
              "jdbc:mysql://SERVER/DATENBANK",
              "USER","PW");
      Stmt = Con.createStatement();
      List<Patient> malePatienten = new ArrayList<Patient>();
      ResultSet result = Stmt.executeQuery(
         "SELECT * FROM patienten WHERE gender=\'male\'" );
      while (result.next()){
        Patient p = new Patient();
        p.setName((result.getString("name"));
        p.set...
        malePatienten.add(p);
      }
      Con.close();
    }
    catch (Exception sqlEx){
      System.err.println(sqlEx);
    }
```


----------



## ARadauer (27. Mai 2011)

select query in den setter des Eigenschaft rein schreiben mach weniger Sinn...

Aber grundsätzlich kannst du solche Späße schon mit JPA zb machen... ist aber eher ein Fortgeschrittenes Thema

das geht einfacher: einPatient.setKKName(result.getString("name"));


----------



## Blubdub (27. Mai 2011)

sehr vielen dank, läuft


----------

