2022-10-22 16:29:32 +02:00
|
|
|
package wtf.beatrice.nounspicker.utils;
|
|
|
|
|
|
|
|
import java.sql.Connection;
|
|
|
|
import java.sql.DriverManager;
|
|
|
|
import java.sql.SQLException;
|
2022-10-22 16:37:32 +02:00
|
|
|
import java.sql.Statement;
|
2022-10-22 16:29:32 +02:00
|
|
|
|
|
|
|
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());
|
|
|
|
}
|
|
|
|
|
2022-10-22 16:37:32 +02:00
|
|
|
public boolean connect()
|
2022-10-22 16:29:32 +02:00
|
|
|
{
|
|
|
|
String url = sqliteURL.replace("%path%", dbPath);
|
|
|
|
|
2022-10-22 16:37:32 +02:00
|
|
|
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()
|
|
|
|
{
|
2022-10-22 16:29:32 +02:00
|
|
|
if (dbConnection != null)
|
|
|
|
{
|
|
|
|
try {
|
|
|
|
if(!dbConnection.isClosed())
|
|
|
|
{
|
|
|
|
dbConnection.close();
|
|
|
|
}
|
|
|
|
} catch (SQLException e) {
|
|
|
|
logger.err(e.getMessage());
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
dbConnection = null;
|
|
|
|
}
|
|
|
|
|
2022-10-22 16:37:32 +02:00
|
|
|
return true;
|
|
|
|
}
|
2022-10-22 16:29:32 +02:00
|
|
|
|
2022-10-22 16:37:32 +02:00
|
|
|
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);
|
2022-10-22 16:29:32 +02:00
|
|
|
} catch (SQLException e) {
|
|
|
|
logger.err(e.getMessage());
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2022-10-22 16:37:32 +02:00
|
|
|
return true;
|
2022-10-22 16:29:32 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|