perf: 优化数据库建表语句
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
package cn.hamster3.mc.plugin.core.bungee.listener;
|
package cn.hamster3.mc.plugin.core.bungee.listener;
|
||||||
|
|
||||||
import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
|
import cn.hamster3.mc.plugin.ball.common.api.BallAPI;
|
||||||
import cn.hamster3.mc.plugin.ball.common.constant.BallCommonConstants;
|
|
||||||
import cn.hamster3.mc.plugin.ball.common.data.BallMessageInfo;
|
import cn.hamster3.mc.plugin.ball.common.data.BallMessageInfo;
|
||||||
import cn.hamster3.mc.plugin.ball.common.entity.BallPlayerInfo;
|
import cn.hamster3.mc.plugin.ball.common.entity.BallPlayerInfo;
|
||||||
import cn.hamster3.mc.plugin.ball.common.entity.BallServerInfo;
|
import cn.hamster3.mc.plugin.ball.common.entity.BallServerInfo;
|
||||||
@@ -208,7 +207,7 @@ public final class BallBungeeCordListener extends BallListener implements Listen
|
|||||||
private void uploadPlayerInfo(BallPlayerInfo playerInfo) {
|
private void uploadPlayerInfo(BallPlayerInfo playerInfo) {
|
||||||
ProxyServer.getInstance().getScheduler().runAsync(HamsterBallPlugin.getInstance(), () -> {
|
ProxyServer.getInstance().getScheduler().runAsync(HamsterBallPlugin.getInstance(), () -> {
|
||||||
try (Connection connection = CoreAPI.getInstance().getConnection()) {
|
try (Connection connection = CoreAPI.getInstance().getConnection()) {
|
||||||
PreparedStatement statement = connection.prepareStatement("REPLACE INTO " + BallCommonConstants.SQL.PLAYER_INFO_TABLE + " VALUES(?, ?, ?, ?, ?);");
|
PreparedStatement statement = connection.prepareStatement("REPLACE INTO `hamster_ball_player_info` VALUES(?, ?, ?, ?, ?);");
|
||||||
statement.setString(1, playerInfo.getUuid().toString());
|
statement.setString(1, playerInfo.getUuid().toString());
|
||||||
statement.setString(2, playerInfo.getName());
|
statement.setString(2, playerInfo.getName());
|
||||||
statement.setString(3, playerInfo.getGameServer());
|
statement.setString(3, playerInfo.getGameServer());
|
||||||
|
@@ -2,7 +2,6 @@ package cn.hamster3.mc.plugin.ball.common.api;
|
|||||||
|
|
||||||
import cn.hamster3.mc.plugin.ball.common.config.BallConfig;
|
import cn.hamster3.mc.plugin.ball.common.config.BallConfig;
|
||||||
import cn.hamster3.mc.plugin.ball.common.connector.BallChannelInitializer;
|
import cn.hamster3.mc.plugin.ball.common.connector.BallChannelInitializer;
|
||||||
import cn.hamster3.mc.plugin.ball.common.constant.BallCommonConstants;
|
|
||||||
import cn.hamster3.mc.plugin.ball.common.data.BallLocation;
|
import cn.hamster3.mc.plugin.ball.common.data.BallLocation;
|
||||||
import cn.hamster3.mc.plugin.ball.common.data.BallMessageInfo;
|
import cn.hamster3.mc.plugin.ball.common.data.BallMessageInfo;
|
||||||
import cn.hamster3.mc.plugin.ball.common.entity.BallPlayerInfo;
|
import cn.hamster3.mc.plugin.ball.common.entity.BallPlayerInfo;
|
||||||
@@ -155,30 +154,31 @@ public abstract class BallAPI {
|
|||||||
|
|
||||||
{
|
{
|
||||||
Statement statement = connection.createStatement();
|
Statement statement = connection.createStatement();
|
||||||
statement.execute("CREATE TABLE IF NOT EXISTS " + BallCommonConstants.SQL.PLAYER_INFO_TABLE + "(" +
|
statement.execute("CREATE TABLE IF NOT EXISTS `hamster_ball_player_info`(" +
|
||||||
"`uuid` CHAR(36) PRIMARY KEY," +
|
"`uuid` CHAR(36) PRIMARY KEY," +
|
||||||
"`name` VARCHAR(16) NOT NULL," +
|
"`name` VARCHAR(16) NOT NULL," +
|
||||||
"`game_server` VARCHAR(32) NOT NULL," +
|
"`game_server` VARCHAR(32) NOT NULL," +
|
||||||
"`proxy_server` VARCHAR(32) NOT NULL," +
|
"`proxy_server` VARCHAR(32) NOT NULL," +
|
||||||
"`online` BOOLEAN NOT NULL" +
|
"`online` BOOLEAN NOT NULL" +
|
||||||
") CHARSET utf8mb4;");
|
") CHARSET utf8mb4;");
|
||||||
statement.execute("CREATE TABLE IF NOT EXISTS " + BallCommonConstants.SQL.SERVER_INFO_TABLE + "(" +
|
statement.execute("CREATE TABLE IF NOT EXISTS `hamster_ball_server_info`(" +
|
||||||
"`id` VARCHAR(32) PRIMARY KEY NOT NULL," +
|
"`id` VARCHAR(32) PRIMARY KEY NOT NULL," +
|
||||||
"`name` VARCHAR(32) NOT NULL," +
|
"`name` VARCHAR(32) NOT NULL," +
|
||||||
"`type` VARCHAR(16) NOT NULL," +
|
"`type` VARCHAR(16) NOT NULL," +
|
||||||
"`host` VARCHAR(32) NOT NULL," +
|
"`host` VARCHAR(32) NOT NULL," +
|
||||||
"`port` INT NOT NULL" +
|
"`port` INT NOT NULL" +
|
||||||
") CHARSET utf8mb4;");
|
") CHARSET utf8mb4;");
|
||||||
statement.execute("CREATE TABLE IF NOT EXISTS " + BallCommonConstants.SQL.CACHED_MESSAGE_TABLE + "(" +
|
statement.execute("CREATE TABLE IF NOT EXISTS `hamster_ball_cached_message`(" +
|
||||||
"`uuid` CHAR(36) NOT NULL," +
|
"`uuid` CHAR(36) NOT NULL," +
|
||||||
"`message` TEXT NOT NULL," +
|
"`message` TEXT NOT NULL," +
|
||||||
"CONSTRAINT `fk_uuid` FOREIGN KEY (`uuid`) REFERENCES " + BallCommonConstants.SQL.PLAYER_INFO_TABLE + "(`uuid`) ON DELETE CASCADE ON UPDATE CASCADE" +
|
"CONSTRAINT `fk_uuid_ball` FOREIGN KEY (`uuid`) REFERENCES `hamster_ball_player_info`(`uuid`) " +
|
||||||
|
"ON DELETE CASCADE ON UPDATE CASCADE" +
|
||||||
") CHARSET utf8mb4;");
|
") CHARSET utf8mb4;");
|
||||||
statement.close();
|
statement.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
PreparedStatement statement = connection.prepareStatement("REPLACE INTO " + BallCommonConstants.SQL.SERVER_INFO_TABLE + " VALUES(?, ?, ?, ?, ?);");
|
PreparedStatement statement = connection.prepareStatement("REPLACE INTO `hamster_ball_server_info` VALUES(?, ?, ?, ?, ?);");
|
||||||
statement.setString(1, localInfo.getId());
|
statement.setString(1, localInfo.getId());
|
||||||
statement.setString(2, localInfo.getName());
|
statement.setString(2, localInfo.getName());
|
||||||
statement.setString(3, localInfo.getType().name());
|
statement.setString(3, localInfo.getType().name());
|
||||||
@@ -189,7 +189,7 @@ public abstract class BallAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
PreparedStatement statement = connection.prepareStatement("SELECT * FROM " + BallCommonConstants.SQL.SERVER_INFO_TABLE + ";");
|
PreparedStatement statement = connection.prepareStatement("SELECT * FROM `hamster_ball_server_info`;");
|
||||||
ResultSet set = statement.executeQuery();
|
ResultSet set = statement.executeQuery();
|
||||||
while (set.next()) {
|
while (set.next()) {
|
||||||
String serverID = set.getString("id");
|
String serverID = set.getString("id");
|
||||||
@@ -206,7 +206,7 @@ public abstract class BallAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
PreparedStatement statement = connection.prepareStatement("SELECT * FROM " + BallCommonConstants.SQL.PLAYER_INFO_TABLE + ";");
|
PreparedStatement statement = connection.prepareStatement("SELECT * FROM `hamster_ball_player_info`;");
|
||||||
ResultSet set = statement.executeQuery();
|
ResultSet set = statement.executeQuery();
|
||||||
while (set.next()) {
|
while (set.next()) {
|
||||||
UUID uuid = UUID.fromString(set.getString("uuid"));
|
UUID uuid = UUID.fromString(set.getString("uuid"));
|
||||||
@@ -282,7 +282,7 @@ public abstract class BallAPI {
|
|||||||
sendBallMessage(new BallMessageInfo(BALL_CHANNEL, ServerOfflineEvent.ACTION, new ServerOfflineEvent(getLocalServerId())), true);
|
sendBallMessage(new BallMessageInfo(BALL_CHANNEL, ServerOfflineEvent.ACTION, new ServerOfflineEvent(getLocalServerId())), true);
|
||||||
|
|
||||||
try (Connection connection = CoreAPI.getInstance().getConnection()) {
|
try (Connection connection = CoreAPI.getInstance().getConnection()) {
|
||||||
PreparedStatement statement = connection.prepareStatement("DELETE FROM " + BallCommonConstants.SQL.SERVER_INFO_TABLE + " WHERE `id`=?;");
|
PreparedStatement statement = connection.prepareStatement("DELETE FROM `hamster_ball_server_info` WHERE `id`=?;");
|
||||||
statement.setString(1, getLocalServerId());
|
statement.setString(1, getLocalServerId());
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
statement.close();
|
statement.close();
|
||||||
@@ -422,7 +422,7 @@ public abstract class BallAPI {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
try (Connection connection = CoreAPI.getInstance().getConnection()) {
|
try (Connection connection = CoreAPI.getInstance().getConnection()) {
|
||||||
PreparedStatement statement = connection.prepareStatement("INSERT INTO " + BallCommonConstants.SQL.CACHED_MESSAGE_TABLE + " VALUES(?, ?);");
|
PreparedStatement statement = connection.prepareStatement("INSERT INTO `hamster_ball_cached_message` VALUES(?, ?);");
|
||||||
statement.setString(1, receiver.toString());
|
statement.setString(1, receiver.toString());
|
||||||
statement.setString(2, message.saveToJson().toString());
|
statement.setString(2, message.saveToJson().toString());
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
@@ -459,7 +459,7 @@ public abstract class BallAPI {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
try (Connection connection = CoreAPI.getInstance().getConnection()) {
|
try (Connection connection = CoreAPI.getInstance().getConnection()) {
|
||||||
PreparedStatement statement = connection.prepareStatement("INSERT INTO " + BallCommonConstants.SQL.CACHED_MESSAGE_TABLE + " VALUES(?, ?);");
|
PreparedStatement statement = connection.prepareStatement("INSERT INTO `hamster_ball_cached_message` VALUES(?, ?);");
|
||||||
statement.setString(1, receiver.toString());
|
statement.setString(1, receiver.toString());
|
||||||
statement.setString(2, message.saveToJson().toString());
|
statement.setString(2, message.saveToJson().toString());
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
@@ -636,7 +636,7 @@ public abstract class BallAPI {
|
|||||||
public List<DisplayMessage> getCachedPlayerMessage(@NotNull UUID uuid) throws SQLException {
|
public List<DisplayMessage> getCachedPlayerMessage(@NotNull UUID uuid) throws SQLException {
|
||||||
ArrayList<DisplayMessage> list = new ArrayList<>();
|
ArrayList<DisplayMessage> list = new ArrayList<>();
|
||||||
try (Connection connection = CoreAPI.getInstance().getConnection()) {
|
try (Connection connection = CoreAPI.getInstance().getConnection()) {
|
||||||
PreparedStatement statement = connection.prepareStatement("SELECT message FROM " + BallCommonConstants.SQL.CACHED_MESSAGE_TABLE + " WHERE `uuid`=?;");
|
PreparedStatement statement = connection.prepareStatement("SELECT message FROM `hamster_ball_cached_message` WHERE `uuid`=?;");
|
||||||
statement.setString(1, uuid.toString());
|
statement.setString(1, uuid.toString());
|
||||||
ResultSet set = statement.executeQuery();
|
ResultSet set = statement.executeQuery();
|
||||||
while (set.next()) {
|
while (set.next()) {
|
||||||
@@ -650,7 +650,7 @@ public abstract class BallAPI {
|
|||||||
|
|
||||||
public void removeCachedPlayerMessage(@NotNull UUID uuid) throws SQLException {
|
public void removeCachedPlayerMessage(@NotNull UUID uuid) throws SQLException {
|
||||||
try (Connection connection = CoreAPI.getInstance().getConnection()) {
|
try (Connection connection = CoreAPI.getInstance().getConnection()) {
|
||||||
PreparedStatement statement = connection.prepareStatement("DELETE FROM " + BallCommonConstants.SQL.CACHED_MESSAGE_TABLE + " WHERE `uuid`=?;");
|
PreparedStatement statement = connection.prepareStatement("DELETE FROM `hamster_ball_cached_message` WHERE `uuid`=?;");
|
||||||
statement.setString(1, uuid.toString());
|
statement.setString(1, uuid.toString());
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
statement.close();
|
statement.close();
|
||||||
|
@@ -1,9 +0,0 @@
|
|||||||
package cn.hamster3.mc.plugin.ball.common.constant;
|
|
||||||
|
|
||||||
public interface BallCommonConstants {
|
|
||||||
interface SQL {
|
|
||||||
String PLAYER_INFO_TABLE = "hamster_ball_player_info";
|
|
||||||
String SERVER_INFO_TABLE = "hamster_ball_server_info";
|
|
||||||
String CACHED_MESSAGE_TABLE = "hamster_ball_cached_message";
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user