package wtf.beatrice.nounspicker.utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class DatabaseManager { private final static String sqliteURL = "jdbc:sqlite:%path%"; private Connection dbConnection = null; private ConsoleLogger logger; private final String dbPath; public DatabaseManager(String dbPath) { this.dbPath = dbPath; logger = new ConsoleLogger(getClass()); } public boolean connect() { String url = sqliteURL.replace("%path%", dbPath); if(!close()) return false; try { dbConnection = DriverManager.getConnection(url); logger.log("Database connection established!"); return true; } catch (SQLException e) { logger.err(e.getMessage()); return false; } } public boolean close() { if (dbConnection != null) { try { if(!dbConnection.isClosed()) { dbConnection.close(); } } catch (SQLException e) { logger.err(e.getMessage()); return false; } dbConnection = null; } return true; } public boolean initDb() { String sql = "CREATE TABLE IF NOT EXISTS pronouns (" + "player text NOT NULL," + "main_pronoun text," + "secondary_pronoun text" + ");"; try (Statement stmt = dbConnection.createStatement()) { // create a new table stmt.execute(sql); } catch (SQLException e) { logger.err(e.getMessage()); return false; } return true; } }