mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2024-12-26 02:57:52 +01:00
Batch Insert for ServerTable
This commit is contained in:
parent
4061c9c4cd
commit
c990358cd4
@ -40,11 +40,18 @@ public class ServerTable extends Table {
|
|||||||
private final String columnWebserverAddress = "web_address";
|
private final String columnWebserverAddress = "web_address";
|
||||||
private final String columnInstalled = "is_installed";
|
private final String columnInstalled = "is_installed";
|
||||||
private final String columnMaxPlayers = "max_players";
|
private final String columnMaxPlayers = "max_players";
|
||||||
|
private String insertStatement;
|
||||||
|
|
||||||
public ServerTable(SQLDB db, boolean usingMySQL) {
|
public ServerTable(SQLDB db, boolean usingMySQL) {
|
||||||
super("plan_servers", db, usingMySQL);
|
super("plan_servers", db, usingMySQL);
|
||||||
statementSelectServerID = "(" + Select.from(tableName, tableName + "." + columnServerID).where(columnServerUUID + "=?").toString() + ")";
|
statementSelectServerID = "(" + Select.from(tableName, tableName + "." + columnServerID).where(columnServerUUID + "=?").toString() + ")";
|
||||||
statementSelectServerNameID = "(" + Select.from(tableName, tableName + "." + columnServerName).where(columnServerID + "=?").toString() + ")";
|
statementSelectServerNameID = "(" + Select.from(tableName, tableName + "." + columnServerName).where(columnServerID + "=?").toString() + ")";
|
||||||
|
insertStatement = Insert.values(tableName,
|
||||||
|
columnServerUUID,
|
||||||
|
columnServerName,
|
||||||
|
columnWebserverAddress,
|
||||||
|
columnInstalled,
|
||||||
|
columnMaxPlayers);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -109,12 +116,7 @@ public class ServerTable extends Table {
|
|||||||
Verify.nullCheck(uuid, name, webAddress);
|
Verify.nullCheck(uuid, name, webAddress);
|
||||||
PreparedStatement statement = null;
|
PreparedStatement statement = null;
|
||||||
try {
|
try {
|
||||||
statement = prepareStatement(Insert.values(tableName,
|
statement = prepareStatement(insertStatement);
|
||||||
columnServerUUID,
|
|
||||||
columnServerName,
|
|
||||||
columnWebserverAddress,
|
|
||||||
columnInstalled,
|
|
||||||
columnMaxPlayers));
|
|
||||||
|
|
||||||
statement.setString(1, uuid.toString());
|
statement.setString(1, uuid.toString());
|
||||||
statement.setString(2, name);
|
statement.setString(2, name);
|
||||||
@ -268,4 +270,36 @@ public class ServerTable extends Table {
|
|||||||
public String getColumnUUID() {
|
public String getColumnUUID() {
|
||||||
return columnServerUUID;
|
return columnServerUUID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void insertAllServers(List<ServerInfo> allServerInfo) throws SQLException {
|
||||||
|
if (Verify.isEmpty(allServerInfo)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PreparedStatement statement = null;
|
||||||
|
try {
|
||||||
|
statement = prepareStatement(insertStatement);
|
||||||
|
|
||||||
|
for (ServerInfo info : allServerInfo) {
|
||||||
|
UUID uuid = info.getUuid();
|
||||||
|
String name = info.getName();
|
||||||
|
String webAddress = info.getWebAddress();
|
||||||
|
|
||||||
|
if (Verify.notNull(uuid, name, webAddress)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
statement.setString(1, uuid.toString());
|
||||||
|
statement.setString(2, name);
|
||||||
|
statement.setString(3, webAddress);
|
||||||
|
statement.setBoolean(4, true);
|
||||||
|
statement.setInt(5, info.getMaxPlayers());
|
||||||
|
statement.addBatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
statement.executeBatch();
|
||||||
|
commit(statement.getConnection());
|
||||||
|
} finally {
|
||||||
|
close(statement);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -7,10 +7,13 @@ package main.java.com.djrapitops.plan.database.tables.move;
|
|||||||
import main.java.com.djrapitops.plan.api.exceptions.DBCreateTableException;
|
import main.java.com.djrapitops.plan.api.exceptions.DBCreateTableException;
|
||||||
import main.java.com.djrapitops.plan.api.exceptions.DatabaseException;
|
import main.java.com.djrapitops.plan.api.exceptions.DatabaseException;
|
||||||
import main.java.com.djrapitops.plan.database.databases.SQLDB;
|
import main.java.com.djrapitops.plan.database.databases.SQLDB;
|
||||||
|
import main.java.com.djrapitops.plan.database.tables.ServerTable;
|
||||||
import main.java.com.djrapitops.plan.database.tables.Table;
|
import main.java.com.djrapitops.plan.database.tables.Table;
|
||||||
|
import main.java.com.djrapitops.plan.systems.info.server.ServerInfo;
|
||||||
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -68,4 +71,11 @@ public class BatchOperationTable extends Table {
|
|||||||
public void copyWebUsers(BatchOperationTable toDB) throws SQLException {
|
public void copyWebUsers(BatchOperationTable toDB) throws SQLException {
|
||||||
toDB.db.getSecurityTable().addUsers(db.getSecurityTable().getUsers());
|
toDB.db.getSecurityTable().addUsers(db.getSecurityTable().getUsers());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void copyServers(BatchOperationTable toDB) throws SQLException {
|
||||||
|
ServerTable serverTable = db.getServerTable();
|
||||||
|
List<ServerInfo> servers = serverTable.getBukkitServers();
|
||||||
|
serverTable.getBungeeInfo().ifPresent(servers::add);
|
||||||
|
toDB.db.getServerTable().insertAllServers(servers);
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user