Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.54 KB | None | 0 0
  1. package de.marvin.wwm.db;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.ResultSet;
  6. import java.sql.Statement;
  7. import java.util.ArrayList;
  8. import java.util.Collections;
  9. import java.util.Comparator;
  10.  
  11. import de.marvin.wwm.gui.Game;
  12.  
  13. public class Database {
  14.    
  15. // Leerer Konstrutor   
  16. public Database(){
  17.    
  18. }
  19.  
  20. public ArrayList<Question> getQuestions(){
  21.     Connection c;
  22.     Statement stmt;
  23.     ArrayList<Question> questions = new ArrayList<Question>();
  24.     try{
  25.         //Library initiieren
  26.         Class.forName("org.sqlite.JDBC");
  27.         // Verbindung zur Datenbank aufbauen
  28.         c = DriverManager.getConnection("jdbc:sqlite::resource:"+ Game.sqlite_db);
  29.         stmt = c.createStatement();
  30.         // Anfrage starten und Antwort empfangen in 'rs' (ganze Tabelle laden)
  31.         ResultSet rs = stmt.executeQuery("SELECT * FROM QUESTIONS ");
  32.        
  33.         while(rs.next()){ // durch next() wird die nächste Zeile ausgelesen
  34.         //Der Variable Question q Werte aus der Anfrage (rs) zuweisen
  35.         Question q = new Question();
  36.         q.setLevel(rs.getInt("Level"));
  37.         q.setQuestion(rs.getString("Question"));
  38.         q.setAnswer(rs.getString("Answer"));
  39.         q.setRight_ans(rs.getInt("right_ans"));
  40.         q.setKind(rs.getString("Kind"));
  41.         questions.add(q);
  42.            
  43.         }
  44.         // Verbindungen trennen
  45.         stmt.close();
  46.         c.close();
  47.        
  48.     }
  49.     catch(Exception e){
  50.         e.printStackTrace();
  51.         //Diagnose für Fehler
  52.         System.out.println("ACHTUNG EIN FEHLER! Ein Fehler ist bei der Abfrage von den Daten(Fragen) geschehen!");
  53.     }
  54.    
  55.    
  56.     return questions;
  57. }
  58.  
  59. public ArrayList<Question> sortbyLevel(ArrayList<Question> input,int Level){
  60.     //Neue ArrayList als output
  61.     ArrayList<Question> output = new ArrayList<Question>();
  62.     //For Schleife die Überprüft ob die jeweilige Frage dem Level übereeinstimmt
  63.     for(int i=0; i<input.size();i++){
  64.         if(input.get(i).getLevel() == Level){
  65.             //Falls ja, der neuen Liste hinzufügen
  66.             output.add(input.get(i));
  67.         }
  68.     }
  69.    
  70.     //Sortierte Liste zurückgeben
  71.     return output;
  72.    
  73. }
  74. public ArrayList<Question> sortbyKind(ArrayList<Question> input,String kind){
  75.     //Neue ArrayList als output
  76.     ArrayList<Question> output = new ArrayList<Question>();
  77.     //For Schleife die Überprüft ob die jeweilige Frage dem Level übereeinstimmt
  78.     for(int i=0; i<input.size();i++){
  79.         if(input.get(i).getKind().equals(kind)){
  80.             //Falls ja, der neuen Liste hinzufügen
  81.             output.add(input.get(i));
  82.         }
  83.     }
  84.    
  85.     //Sortierte Liste zurückgeben
  86.     return output;
  87.    
  88. }
  89.  
  90.  
  91.  
  92. public void insertHighscore(Highscore highscore){
  93.     Connection c;
  94.     Statement stmt;
  95.    
  96.     try{
  97.         //Library initiieren
  98.         Class.forName("org.sqlite.JDBC");
  99.         // Verbindung zur Datenbank aufbauen
  100.         c = DriverManager.getConnection("jdbc:sqlite::resource:"+ Game.sqlite_db_highscore);
  101.         stmt = c.createStatement();
  102.         //Daten von dem Highscore Objekt in die Datenbank eintragen
  103.         stmt.executeUpdate("INSERT INTO HIGHSCORE (NAME,HIGHSCORE) VALUES('"+highscore.getName()+"',"+highscore.getScore()+")");
  104.         stmt.close();
  105.         c.close();
  106.     }catch(Exception e){
  107.         e.printStackTrace();
  108.         //Diagnose für Fehler
  109.         System.out.println("ACHTUNG FEHLER! Ein Fehler ist bei dem Speichern vom Highscore aufgetreten.");
  110.     }
  111.        
  112. }
  113.  
  114. public ArrayList<Highscore> getHighscore(){
  115.     Connection c;
  116.     Statement stmt;
  117.     ArrayList<Highscore> highscores = new ArrayList<Highscore>();
  118.     try{
  119.         //Library initiieren
  120.         Class.forName("org.sqlite.JDBC");
  121.         // Verbindung zur Datenbank aufbauen
  122.         c = DriverManager.getConnection("jdbc:sqlite::resource:"+ Game.sqlite_db_highscore);
  123.         stmt = c.createStatement();
  124.         // Anfrage starten und Antwort empfangen in 'rs' (ganze Tabelle laden)
  125.         ResultSet rs = stmt.executeQuery("SELECT * FROM HIGHSCORE");
  126.        
  127.         while(rs.next()){ // durch next() wird die nächste Zeile ausgelesen
  128.         //Der Variable Question q Werte aus der Anfrage (rs) zuweisen
  129.         Highscore h = new Highscore();
  130.         h.setName(rs.getString("Name"));
  131.         h.setScore(rs.getInt("Highscore"));
  132.         highscores.add(h);
  133.            
  134.         }
  135.         //Highscore nach dem höchsten Score sortieren
  136.         Collections.sort(highscores, new Comparator<Highscore>() {
  137.             @Override
  138.             public int compare(Highscore h1, Highscore h2) {
  139.                 if (h1.getScore() > h2.getScore())
  140.                     return -1;
  141.                 if (h1.getScore() < h2.getScore())
  142.                     return 1;
  143.                 return 0;
  144.             }
  145.         });
  146.         // Verbindungen trennen
  147.         stmt.close();
  148.         c.close();
  149.        
  150.        
  151.        
  152.     }
  153.     catch(Exception e){
  154.         e.printStackTrace();
  155.         //Diagnose für Fehler
  156.         System.out.println("ACHTUNG EIN FEHLER! Ein Fehler ist bei der Abfrage von den Daten(Fragen) geschehen!");
  157.     }
  158.     return highscores;
  159. }
  160.  
  161.  
  162.  
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement