# Datenbankwerte in Array einfügen



## Vince0002 (17. Jun 2019)

Hallo,
ich arbeite momentan an dem Erstellen eines Quizspieles und bin auf einige Probleme gestoßen. Momentan habe ich meine Fragen in Java in einem Array angelegt und arbeite von dort aus mit diesem mittels einer Zufallsmethode:

```
public class Fragen {
    
    int zufall;
    String fragen[] = new String[19];
    static String frage;
    
    
public Fragen() {
    fragen[2] = "Was hat Gandhi studiert?$Medizin$Jura$Literatur$Nichts$2";
    fragen[1] = "Was sollte am 21.12.2012 passieren?$Weltuntergang$Weltbibeltag$Xmas$Nichts$1";
    fragen[3] = "Was ist richtig?$A$B$C$D$3";
    
    
    frage = fragen[zufall(1,3)];
}
    
public int zufall(int min, int max) {
    zufall = (int) ((max-min)*Math.random()+min);
    return zufall;
}

}
```

Nun war meine Überlegung diese Werte in einer Datenbank zu speichern. Ich habe diese bereits erstellt und verbunden und alles funktioniert so weit. Dazu habe ich eine Klasse "aaa" erstellt in der ich die Verbindung zu Datenbank herstelle. Mit rs.getString(f1) und System.out.println(f1) beispielsweiße kann ich den  ersten Wert der Datenbank ausgeben in der Klasse aaa:

```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class aaa {
public static void main(String[] args) {
    System.out.println("MySQL Connect Example");
    Connection conn = null;
    String url = "jdbc:mysql://localhost:3306/";
    String dbName = "test";
    String driver = "com.mysql.jdbc.Driver";
    String userName = "root";
    String password = "";
    String f1,f2;
    
    
    try
    {
        Class.forName(driver).newInstance();
        conn = DriverManager.getConnection(url+dbName, userName, password);
        String query = "Select * FROM tesee";
        System.out.println("Connected to the database");
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery(query);
        while(rs.next())
        {
            f1 = rs.getString(1);
            f2 = rs.getString(2);
            
            
            
            System.out.println(f1);
            System.out.println(f2);
            
            
        }
        conn.close();
        System.out.println("Disconnected from Database");
        }
    catch(ClassNotFoundException e)
    {
        
        e.printStackTrace();
        
    }
        catch(SQLException e)
    {
            e.printStackTrace();
    }
    catch (Exception e) {
        e.printStackTrace();

    }
}
}
```


Nun komme ich aber nicht weiter. Wie kriege ich die Werte f1,f2.... in das Array in der Klasse Fragen. Wäre sehr nett wenn mir jemand bei meinem Problem helfen würde. Danke im Vorraus. Mit freundlichen Grüßen


----------



## mihe7 (17. Jun 2019)

Kurzform:

```
public class Fragenkatalog {
    private List<String> fragen;

    public Fragenkatalog(List<String> fragen) {
        this.fragen = fragen;
    }

    public String zufallsFrage() {
        return this.fragen((int)(Math.random() * fragen.size()));
    }
}
```


```
public class FragenDb {
    private static final String QUERY = "SELECT * FROM tesee";

    private Connection conn;    

    public Fragenkatalog ladeFragen() {
        try(PreparedStatement stmt = conn.prepareStatement(QUERY);
                 ResultSet rs = stmt.executeQuery()) {
            return leseFragen(rs);
        }  catch (SQLException ex) {
            ex.printStackTrace();
            return null;
        }
    }
    private Fragenkatalog leseFragen(ResultSet rs) throws SQLException {
        List<String> fragen = new ArrayList<>();
        while (rs.next()) {
            fragen.add(rs.getString(1));
        }
       return new Fragenkatalog(fragen);
    }
}
```


```
public class App {
    public static void main(String[] args) throws Exception {
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
        FragenDb db = new FragenDb(conn);
        Fragenkatalog katalog = db.ladeFragen();
        for (int i = 0; i < 10; i++) {
            System.out.println(katalog.zufallsFrage());
        }
    }
}
```


----------

