Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.marvin.wwm.db;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.Statement;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Comparator;
- import de.marvin.wwm.gui.Game;
- public class Database {
- // Leerer Konstrutor
- public Database(){
- }
- public ArrayList<Question> getQuestions(){
- Connection c;
- Statement stmt;
- ArrayList<Question> questions = new ArrayList<Question>();
- try{
- //Library initiieren
- Class.forName("org.sqlite.JDBC");
- // Verbindung zur Datenbank aufbauen
- c = DriverManager.getConnection("jdbc:sqlite::resource:"+ Game.sqlite_db);
- stmt = c.createStatement();
- // Anfrage starten und Antwort empfangen in 'rs' (ganze Tabelle laden)
- ResultSet rs = stmt.executeQuery("SELECT * FROM QUESTIONS ");
- while(rs.next()){ // durch next() wird die nächste Zeile ausgelesen
- //Der Variable Question q Werte aus der Anfrage (rs) zuweisen
- Question q = new Question();
- q.setLevel(rs.getInt("Level"));
- q.setQuestion(rs.getString("Question"));
- q.setAnswer(rs.getString("Answer"));
- q.setRight_ans(rs.getInt("right_ans"));
- q.setKind(rs.getString("Kind"));
- questions.add(q);
- }
- // Verbindungen trennen
- stmt.close();
- c.close();
- }
- catch(Exception e){
- e.printStackTrace();
- //Diagnose für Fehler
- System.out.println("ACHTUNG EIN FEHLER! Ein Fehler ist bei der Abfrage von den Daten(Fragen) geschehen!");
- }
- return questions;
- }
- public ArrayList<Question> sortbyLevel(ArrayList<Question> input,int Level){
- //Neue ArrayList als output
- ArrayList<Question> output = new ArrayList<Question>();
- //For Schleife die Überprüft ob die jeweilige Frage dem Level übereeinstimmt
- for(int i=0; i<input.size();i++){
- if(input.get(i).getLevel() == Level){
- //Falls ja, der neuen Liste hinzufügen
- output.add(input.get(i));
- }
- }
- //Sortierte Liste zurückgeben
- return output;
- }
- public ArrayList<Question> sortbyKind(ArrayList<Question> input,String kind){
- //Neue ArrayList als output
- ArrayList<Question> output = new ArrayList<Question>();
- //For Schleife die Überprüft ob die jeweilige Frage dem Level übereeinstimmt
- for(int i=0; i<input.size();i++){
- if(input.get(i).getKind().equals(kind)){
- //Falls ja, der neuen Liste hinzufügen
- output.add(input.get(i));
- }
- }
- //Sortierte Liste zurückgeben
- return output;
- }
- public void insertHighscore(Highscore highscore){
- Connection c;
- Statement stmt;
- try{
- //Library initiieren
- Class.forName("org.sqlite.JDBC");
- // Verbindung zur Datenbank aufbauen
- c = DriverManager.getConnection("jdbc:sqlite::resource:"+ Game.sqlite_db_highscore);
- stmt = c.createStatement();
- //Daten von dem Highscore Objekt in die Datenbank eintragen
- stmt.executeUpdate("INSERT INTO HIGHSCORE (NAME,HIGHSCORE) VALUES('"+highscore.getName()+"',"+highscore.getScore()+")");
- stmt.close();
- c.close();
- }catch(Exception e){
- e.printStackTrace();
- //Diagnose für Fehler
- System.out.println("ACHTUNG FEHLER! Ein Fehler ist bei dem Speichern vom Highscore aufgetreten.");
- }
- }
- public ArrayList<Highscore> getHighscore(){
- Connection c;
- Statement stmt;
- ArrayList<Highscore> highscores = new ArrayList<Highscore>();
- try{
- //Library initiieren
- Class.forName("org.sqlite.JDBC");
- // Verbindung zur Datenbank aufbauen
- c = DriverManager.getConnection("jdbc:sqlite::resource:"+ Game.sqlite_db_highscore);
- stmt = c.createStatement();
- // Anfrage starten und Antwort empfangen in 'rs' (ganze Tabelle laden)
- ResultSet rs = stmt.executeQuery("SELECT * FROM HIGHSCORE");
- while(rs.next()){ // durch next() wird die nächste Zeile ausgelesen
- //Der Variable Question q Werte aus der Anfrage (rs) zuweisen
- Highscore h = new Highscore();
- h.setName(rs.getString("Name"));
- h.setScore(rs.getInt("Highscore"));
- highscores.add(h);
- }
- //Highscore nach dem höchsten Score sortieren
- Collections.sort(highscores, new Comparator<Highscore>() {
- @Override
- public int compare(Highscore h1, Highscore h2) {
- if (h1.getScore() > h2.getScore())
- return -1;
- if (h1.getScore() < h2.getScore())
- return 1;
- return 0;
- }
- });
- // Verbindungen trennen
- stmt.close();
- c.close();
- }
- catch(Exception e){
- e.printStackTrace();
- //Diagnose für Fehler
- System.out.println("ACHTUNG EIN FEHLER! Ein Fehler ist bei der Abfrage von den Daten(Fragen) geschehen!");
- }
- return highscores;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement