diff --git a/common/src/main/java/me/lucko/luckperms/common/storage/backing/sqlprovider/MySQLProvider.java b/common/src/main/java/me/lucko/luckperms/common/storage/backing/sqlprovider/MySQLProvider.java index 74805fdd6..de555ad00 100644 --- a/common/src/main/java/me/lucko/luckperms/common/storage/backing/sqlprovider/MySQLProvider.java +++ b/common/src/main/java/me/lucko/luckperms/common/storage/backing/sqlprovider/MySQLProvider.java @@ -71,6 +71,8 @@ public class MySQLProvider extends SQLProvider { config.addDataSourceProperty("cacheServerConfiguration", true); config.addDataSourceProperty("elideSetAutoCommits", true); config.addDataSourceProperty("useLocalSessionState", true); + config.addDataSourceProperty("characterEncoding", "utf8"); + config.addDataSourceProperty("useUnicode", "true"); config.setConnectionTimeout(TimeUnit.SECONDS.toMillis(10)); // 10000 config.setLeakDetectionThreshold(TimeUnit.SECONDS.toMillis(5)); // 5000 config.setValidationTimeout(TimeUnit.SECONDS.toMillis(3)); // 3000 diff --git a/common/src/main/java/me/lucko/luckperms/common/storage/backing/sqlprovider/SQLProvider.java b/common/src/main/java/me/lucko/luckperms/common/storage/backing/sqlprovider/SQLProvider.java index 7cece9ac9..dd8ea86af 100644 --- a/common/src/main/java/me/lucko/luckperms/common/storage/backing/sqlprovider/SQLProvider.java +++ b/common/src/main/java/me/lucko/luckperms/common/storage/backing/sqlprovider/SQLProvider.java @@ -25,14 +25,10 @@ package me.lucko.luckperms.common.storage.backing.sqlprovider; import lombok.Getter; import lombok.RequiredArgsConstructor; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; import java.sql.SQLException; @RequiredArgsConstructor public abstract class SQLProvider { - private static final QueryPS EMPTY_PS = preparedStatement -> {}; @Getter private final String name; @@ -43,63 +39,4 @@ public abstract class SQLProvider { public abstract WrappedConnection getConnection() throws SQLException; - public boolean runQuery(String query, QueryPS queryPS) { - try { - try (Connection connection = getConnection()) { - if (connection == null || connection.isClosed()) { - throw new IllegalStateException("SQL connection is null"); - } - - try (PreparedStatement preparedStatement = connection.prepareStatement(query)) { - queryPS.onRun(preparedStatement); - - preparedStatement.execute(); - return true; - } - } - } catch (SQLException e) { - e.printStackTrace(); - } - return false; - } - - public boolean runQuery(String query, QueryPS queryPS, QueryRS queryRS) { - try { - try (Connection connection = getConnection()) { - if (connection == null || connection.isClosed()) { - throw new IllegalStateException("SQL connection is null"); - } - - try (PreparedStatement preparedStatement = connection.prepareStatement(query)) { - queryPS.onRun(preparedStatement); - - try (ResultSet resultSet = preparedStatement.executeQuery()) { - return queryRS.onResult(resultSet); - } - } - } - } catch (SQLException e) { - e.printStackTrace(); - } - return false; - } - - public boolean runQuery(String query) { - return runQuery(query, EMPTY_PS); - } - - public boolean runQuery(String query, QueryRS queryRS) { - return runQuery(query, EMPTY_PS, queryRS); - } - - @FunctionalInterface - public interface QueryPS { - void onRun(PreparedStatement preparedStatement) throws SQLException; - } - - @FunctionalInterface - public interface QueryRS { - boolean onResult(ResultSet resultSet) throws SQLException; - } - } diff --git a/common/src/main/resources/lp-schema-mysql.sql b/common/src/main/resources/lp-schema-mysql.sql index 5d49d841c..99b8e364c 100644 --- a/common/src/main/resources/lp-schema-mysql.sql +++ b/common/src/main/resources/lp-schema-mysql.sql @@ -39,7 +39,7 @@ CREATE INDEX `{prefix}players_username` ON `{prefix}players` (`username`); CREATE TABLE `{prefix}groups` ( `name` VARCHAR(36) NOT NULL, PRIMARY KEY (`name`) -); +) DEFAULT CHARSET = utf8; CREATE TABLE `{prefix}actions` ( `id` INT AUTO_INCREMENT NOT NULL,