Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.sql.*;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Random;
- /**
- * Created by Leander on 13/01/2016.
- */
- /*
- * Deze class, telkens eindigend op DAO, bevat alles i.v.m. de connectie naar je database.
- * Voor je Hangman heb je een woord nodig uit de database om mee te geven in je Launcher-class,
- * dus sowieso zal hier een getWord() moeten geschreven worden om een woord uit de database te halen.
- * De database (java) heb ik gewoon aangemaakt handmatig via phpMyAdmin en ook manueel enkele woorden ingestopt.
- */
- public class WordDAO {
- private Connection connection;
- public WordDAO(){
- /*in je constructor maak je eerst de link met de techniek JDBC, zoals hieronder*/
- try{
- Class.forName("com.mysql.jdbc.Driver");
- }catch(ClassNotFoundException e){
- e.printStackTrace();
- }
- /*vervolgens ga je dan effectief de connectie maken met de link naar je databank, je gebruikersnaam en je wachtwoord*/
- try{
- connection = DriverManager.getConnection("jdbc:mysql://localhost/java", "root", "");
- }catch(SQLException e){
- e.printStackTrace();
- }
- }
- /*
- * 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
- * Eens je die woorden hebt opgevraagd en in een ArrayList hebt gestopt in Java, kan je random een oproepen
- */
- private List<String> getWords(){
- try{
- /*The Java-way to execute a query:*/
- PreparedStatement preparedStatement = connection.prepareStatement("SELECT word FROM words");
- ResultSet resultSet = preparedStatement.executeQuery();
- /*Alle woorden van de databank zijn nu opgevraagd, we gaan ze in een lijst steken:*/
- List<String> words = new ArrayList<>();
- /*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*/
- while(resultSet.next()){
- String actualWord = resultSet.getString("word");
- words.add(actualWord);
- }
- return words;
- }catch(SQLException e){
- e.printStackTrace();
- return null; //sowieso moet er een object gereturned worden, dus bij catch return je null mocht er een sqlexception optreden
- }
- }
- /*Random woord uit de woordenlijst words halen om dan later in onze launcher-class mee te geven:*/
- public String getWord(){
- List<String> words = getWords();
- Random random = new Random();
- int randomIndex = random.nextInt(words.size()); //de randomindex mag niet groter zijn dan de grootte van de list words
- String word = words.get(randomIndex);
- return word;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement