feat: migrate to mariadb (finally)

This commit is contained in:
ChomeNS
2025-03-06 18:04:18 +07:00
parent d962fa325b
commit 7b08c0dc36
5 changed files with 9 additions and 10 deletions

View File

@@ -11,7 +11,6 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class DatabasePlugin {
// is it OK to have a completely separate ExecutorService to do the executions?
public static final ExecutorService executorService = Executors.newFixedThreadPool(
1,
new ThreadFactoryBuilder().setNameFormat("ExecutorService (database)").build()
@@ -22,7 +21,7 @@ public class DatabasePlugin {
public DatabasePlugin (Configuration config) {
try {
connection = DriverManager.getConnection(
"jdbc:mysql://" + config.database.address + "/chomens_bot",
"jdbc:mariadb://" + config.database.address + "/chomens_bot",
config.database.username,
config.database.password
);

View File

@@ -19,13 +19,13 @@ import java.util.Map;
import java.util.concurrent.CompletableFuture;
public class PlayersDatabasePlugin extends PlayersPlugin.Listener {
private static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS players (username VARCHAR(255) PRIMARY KEY, data JSON);";
private static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS players (username VARCHAR(255) PRIMARY KEY, data LONGTEXT);";
private static final String INSERT_PLAYER = "INSERT IGNORE INTO players (username, data) VALUES (?, ?);";
private static final String UPDATE_PLAYER = "UPDATE players SET data = JSON_SET(data, ?, JSON_MERGE_PATCH(data -> ?, ?)) WHERE username = ?;";
private static final String UPDATE_PLAYER = "UPDATE players SET data = JSON_SET(data, ?, JSON_MERGE_PATCH(JSON_EXTRACT(data, ?), ?)) WHERE username = ?;";
private static final String GET_DATA = "SELECT data FROM players WHERE username = ?;";
private static final String GET_IP = "SELECT JSON_UNQUOTE(JSON_EXTRACT(data, ?)) AS ip FROM players WHERE username = ?;";
private static final String FIND_ALTS_SINGLE_SERVER = "SELECT * FROM players WHERE JSON_CONTAINS(data -> '$.ips', JSON_OBJECT(?, ?));";
private static final String FIND_ALTS_ALL_SERVERS = "SELECT * FROM players WHERE JSON_SEARCH(data->'$.ips', 'one', ?);"; // 'one' means case-sensitive
private static final String GET_IP = "SELECT JSON_UNQUOTE(JSON_VALUE(data, ?)) AS ip FROM players WHERE username = ?;";
private static final String FIND_ALTS_SINGLE_SERVER = "SELECT * FROM players WHERE JSON_CONTAINS(JSON_EXTRACT(data, '$.ips'), JSON_OBJECT(?, ?));";
private static final String FIND_ALTS_ALL_SERVERS = "SELECT * FROM players WHERE JSON_SEARCH(JSON_EXTRACT(data, '$.ips'), 'one', ?) IS NOT NULL;";
private static final ObjectMapper objectMapper = new ObjectMapper();