Refactored UserTable#getUsers to a query

This commit is contained in:
Rsl1122 2019-01-20 15:45:53 +02:00
parent 3bba52f0a8
commit a110759719
5 changed files with 27 additions and 28 deletions

View File

@ -23,6 +23,7 @@ import com.djrapitops.plan.data.store.objects.Nickname;
import com.djrapitops.plan.db.access.Query;
import com.djrapitops.plan.db.access.QueryAllStatement;
import com.djrapitops.plan.db.access.QueryStatement;
import com.djrapitops.plan.db.sql.parsing.Select;
import com.djrapitops.plan.db.sql.tables.*;
import com.djrapitops.plan.system.info.server.Server;
@ -462,4 +463,23 @@ public class LargeFetchQueries {
}
};
}
public static Query<Map<UUID, UserInfo>> fetchAllCommonUserInformation() {
String sql = Select.all(UsersTable.TABLE_NAME).toString();
return new QueryAllStatement<Map<UUID, UserInfo>>(sql, 20000) {
@Override
public Map<UUID, UserInfo> processResults(ResultSet set) throws SQLException {
Map<UUID, UserInfo> users = new HashMap<>();
while (set.next()) {
UUID uuid = UUID.fromString(set.getString(UsersTable.Col.UUID.get()));
String name = set.getString(UsersTable.Col.USER_NAME.get());
long registered = set.getLong(UsersTable.Col.REGISTERED.get());
users.put(uuid, new UserInfo(uuid, name, registered, false, false));
}
return users;
}
};
}
}

View File

@ -275,25 +275,6 @@ public class UsersTable extends UserUUIDTable {
});
}
public Map<UUID, UserInfo> getUsers() {
String sql = Select.all(tableName).toString();
return query(new QueryAllStatement<Map<UUID, UserInfo>>(sql, 20000) {
@Override
public Map<UUID, UserInfo> processResults(ResultSet set) throws SQLException {
Map<UUID, UserInfo> users = new HashMap<>();
while (set.next()) {
UUID uuid = UUID.fromString(set.getString(Col.UUID.get()));
String name = set.getString(Col.USER_NAME.get());
long registered = set.getLong(Col.REGISTERED.get());
users.put(uuid, new UserInfo(uuid, name, registered, false, false));
}
return users;
}
});
}
/**
* Inserts UUIDs, Register dates and Names to the table.
* <p>

View File

@ -16,15 +16,11 @@
*/
package com.djrapitops.plan.db.sql.tables.move;
import com.djrapitops.plan.data.container.UserInfo;
import com.djrapitops.plan.db.SQLDB;
import com.djrapitops.plan.db.sql.queries.batch.LargeFetchQueries;
import com.djrapitops.plan.db.sql.tables.Table;
import com.djrapitops.plan.db.sql.tables.UsersTable;
import java.util.Map;
import java.util.UUID;
/**
* A Fake table used to store a lot of big table operations.
* <p>
@ -162,8 +158,8 @@ public class BatchOperationTable extends Table {
}
UsersTable fromTable = db.getUsersTable();
UsersTable toTable = toDB.db.getUsersTable();
Map<UUID, UserInfo> users = fromTable.getUsers();
toTable.insertUsers(users);
toTable.insertUsers(db.query(LargeFetchQueries.fetchAllCommonUserInformation()));
toTable.updateKicked(fromTable.getAllTimesKicked());
}

View File

@ -192,7 +192,7 @@ public class SQLFetchOps extends SQLOps implements FetchOperations {
public List<PlayerContainer> getAllPlayerContainers() {
List<PlayerContainer> containers = new ArrayList<>();
Map<UUID, UserInfo> users = usersTable.getUsers();
Map<UUID, UserInfo> users = db.query(LargeFetchQueries.fetchAllCommonUserInformation());
Map<UUID, Integer> timesKicked = usersTable.getAllTimesKicked();
Map<UUID, List<GeoInfo>> geoInfo = db.query(LargeFetchQueries.fetchAllGeoInfoData());
Map<UUID, List<Ping>> allPings = db.query(LargeFetchQueries.fetchAllPingData());
@ -424,7 +424,7 @@ public class SQLFetchOps extends SQLOps implements FetchOperations {
@Override
public Map<UUID, UserInfo> getUsers() {
return usersTable.getUsers();
return db.query(LargeFetchQueries.fetchAllCommonUserInformation());
}
@Override

View File

@ -20,6 +20,7 @@ import com.djrapitops.plan.PlanPlugin;
import com.djrapitops.plan.api.exceptions.ParseException;
import com.djrapitops.plan.api.exceptions.database.DBOpException;
import com.djrapitops.plan.data.container.UserInfo;
import com.djrapitops.plan.db.sql.queries.batch.LargeFetchQueries;
import com.djrapitops.plan.system.database.DBSystem;
import com.djrapitops.plan.system.file.PlanFiles;
import com.djrapitops.plan.system.info.connection.ConnectionSystem;
@ -137,7 +138,8 @@ public class HtmlExport extends SpecificExport {
public void exportAvailablePlayers() {
try {
for (Map.Entry<UUID, UserInfo> entry : dbSystem.getDatabase().fetch().getUsers().entrySet()) {
Map<UUID, UserInfo> users = dbSystem.getDatabase().query(LargeFetchQueries.fetchAllCommonUserInformation());
for (Map.Entry<UUID, UserInfo> entry : users.entrySet()) {
exportAvailablePlayerPage(entry.getKey(), entry.getValue().getName());
}
} catch (IOException | DBOpException e) {