NounsPicker/src/main/java/wtf/beatrice/nounspicker/utils/DatabaseManager.java

79 lines
1.8 KiB
Java

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;
}
}