Advertisement
Guest User

Untitled

a guest
Jan 13th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.88 KB | None | 0 0
  1. import java.sql.*;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.Random;
  5.  
  6. /**
  7.  * Created by Leander on 13/01/2016.
  8.  */
  9.  
  10. /*
  11. * Deze class, telkens eindigend op DAO, bevat alles i.v.m. de connectie naar je database.
  12. * Voor je Hangman heb je een woord nodig uit de database om mee te geven in je Launcher-class,
  13. * dus sowieso zal hier een getWord() moeten geschreven worden om een woord uit de database te halen.
  14. * De database (java) heb ik gewoon aangemaakt handmatig via phpMyAdmin en ook manueel enkele woorden ingestopt.
  15. */
  16. public class WordDAO {
  17.     private Connection connection;
  18.  
  19.     public WordDAO(){
  20.         /*in je constructor maak je eerst de link met de techniek JDBC, zoals hieronder*/
  21.         try{
  22.             Class.forName("com.mysql.jdbc.Driver");
  23.         }catch(ClassNotFoundException e){
  24.             e.printStackTrace();
  25.         }
  26.  
  27.         /*vervolgens ga je dan effectief de connectie maken met de link naar je databank,  je gebruikersnaam en je wachtwoord*/
  28.         try{
  29.             connection = DriverManager.getConnection("jdbc:mysql://localhost/java", "root", "");
  30.         }catch(SQLException e){
  31.             e.printStackTrace();
  32.         }
  33.     }
  34.         /*
  35.         * De filosofie achter de logica is de volgende: eerst roep je eenmalig alles op uit je db met getWords() = alle woorden die in je databank zitten opvragen
  36.         * Eens je die woorden hebt opgevraagd en in een ArrayList hebt gestopt in Java, kan je random een oproepen
  37.         */
  38.  
  39.     private List<String> getWords(){
  40.         try{
  41.             /*The Java-way to execute a query:*/
  42.             PreparedStatement preparedStatement = connection.prepareStatement("SELECT word FROM words");
  43.             ResultSet resultSet = preparedStatement.executeQuery();
  44.  
  45.             /*Alle woorden van de databank zijn nu opgevraagd, we gaan ze in een lijst steken:*/
  46.             List<String> words = new ArrayList<>();
  47.  
  48.             /*Zolang er in het resultaat van de query nog een woord volgt, ga je een variabele actualWord aanmaken en in de lijst met woorden stoppen*/
  49.             while(resultSet.next()){
  50.                 String actualWord = resultSet.getString("word");
  51.                 words.add(actualWord);
  52.             }
  53.             return words;
  54.         }catch(SQLException e){
  55.             e.printStackTrace();
  56.             return null; //sowieso moet er een object gereturned worden, dus bij catch return je null mocht er een sqlexception optreden
  57.         }
  58.     }
  59.  
  60.     /*Random woord uit de woordenlijst words halen om dan later in onze launcher-class mee te geven:*/
  61.     public String getWord(){
  62.         List<String> words = getWords();
  63.         Random random = new Random();
  64.  
  65.         int randomIndex = random.nextInt(words.size()); //de randomindex mag niet groter zijn dan de grootte van de list words
  66.  
  67.         String word = words.get(randomIndex);
  68.         return word;
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement