mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2025-03-12 14:49:56 +01:00
Batch Insert for SecurityTable
This commit is contained in:
parent
f31c597300
commit
4061c9c4cd
@ -4,6 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
package main.java.com.djrapitops.plan.database.tables;
|
package main.java.com.djrapitops.plan.database.tables;
|
||||||
|
|
||||||
|
import com.djrapitops.plugin.utilities.Verify;
|
||||||
import main.java.com.djrapitops.plan.Plan;
|
import main.java.com.djrapitops.plan.Plan;
|
||||||
import main.java.com.djrapitops.plan.api.exceptions.DBCreateTableException;
|
import main.java.com.djrapitops.plan.api.exceptions.DBCreateTableException;
|
||||||
import main.java.com.djrapitops.plan.data.Action;
|
import main.java.com.djrapitops.plan.data.Action;
|
||||||
@ -165,7 +166,7 @@ public class ActionsTable extends UserIDTable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void insertActions(Map<UUID, Map<UUID, List<Action>>> allActions) throws SQLException {
|
public void insertActions(Map<UUID, Map<UUID, List<Action>>> allActions) throws SQLException {
|
||||||
if (allActions.isEmpty()) {
|
if (Verify.isEmpty(allActions)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PreparedStatement statement = null;
|
PreparedStatement statement = null;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package main.java.com.djrapitops.plan.database.tables;
|
package main.java.com.djrapitops.plan.database.tables;
|
||||||
|
|
||||||
|
import com.djrapitops.plugin.utilities.Verify;
|
||||||
import main.java.com.djrapitops.plan.api.exceptions.DBCreateTableException;
|
import main.java.com.djrapitops.plan.api.exceptions.DBCreateTableException;
|
||||||
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.sql.Select;
|
import main.java.com.djrapitops.plan.database.sql.Select;
|
||||||
@ -196,7 +197,7 @@ public class IPsTable extends UserIDTable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void insertIPsAndGeolocations(Map<UUID, Map<String, String>> allIPsAndGeolocations) throws SQLException {
|
public void insertIPsAndGeolocations(Map<UUID, Map<String, String>> allIPsAndGeolocations) throws SQLException {
|
||||||
if (allIPsAndGeolocations.isEmpty()) {
|
if (Verify.isEmpty(allIPsAndGeolocations)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PreparedStatement statement = null;
|
PreparedStatement statement = null;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package main.java.com.djrapitops.plan.database.tables;
|
package main.java.com.djrapitops.plan.database.tables;
|
||||||
|
|
||||||
|
import com.djrapitops.plugin.utilities.Verify;
|
||||||
import main.java.com.djrapitops.plan.Plan;
|
import main.java.com.djrapitops.plan.Plan;
|
||||||
import main.java.com.djrapitops.plan.api.exceptions.DBCreateTableException;
|
import main.java.com.djrapitops.plan.api.exceptions.DBCreateTableException;
|
||||||
import main.java.com.djrapitops.plan.database.databases.SQLDB;
|
import main.java.com.djrapitops.plan.database.databases.SQLDB;
|
||||||
@ -200,7 +201,7 @@ public class NicknamesTable extends UserIDTable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void insertNicknames(Map<UUID, Map<UUID, List<String>>> allNicknames) throws SQLException {
|
public void insertNicknames(Map<UUID, Map<UUID, List<String>>> allNicknames) throws SQLException {
|
||||||
if (allNicknames.isEmpty()) {
|
if (Verify.isEmpty(allNicknames)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PreparedStatement statement = null;
|
PreparedStatement statement = null;
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
*/
|
*/
|
||||||
package main.java.com.djrapitops.plan.database.tables;
|
package main.java.com.djrapitops.plan.database.tables;
|
||||||
|
|
||||||
|
import com.djrapitops.plugin.utilities.Verify;
|
||||||
import main.java.com.djrapitops.plan.Log;
|
import main.java.com.djrapitops.plan.Log;
|
||||||
import main.java.com.djrapitops.plan.api.exceptions.DBCreateTableException;
|
import main.java.com.djrapitops.plan.api.exceptions.DBCreateTableException;
|
||||||
import main.java.com.djrapitops.plan.data.WebUser;
|
import main.java.com.djrapitops.plan.data.WebUser;
|
||||||
@ -28,9 +29,14 @@ public class SecurityTable extends Table {
|
|||||||
private final String columnUser = "username";
|
private final String columnUser = "username";
|
||||||
private final String columnSaltedHash = "salted_pass_hash";
|
private final String columnSaltedHash = "salted_pass_hash";
|
||||||
private final String columnPermLevel = "permission_level";
|
private final String columnPermLevel = "permission_level";
|
||||||
|
private String insertStatement;
|
||||||
|
|
||||||
public SecurityTable(SQLDB db, boolean usingMySQL) {
|
public SecurityTable(SQLDB db, boolean usingMySQL) {
|
||||||
super("plan_security", db, usingMySQL);
|
super("plan_security", db, usingMySQL);
|
||||||
|
insertStatement = Insert.values(tableName,
|
||||||
|
columnUser,
|
||||||
|
columnSaltedHash,
|
||||||
|
columnPermLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -67,10 +73,7 @@ public class SecurityTable extends Table {
|
|||||||
public void addNewUser(String user, String saltPassHash, int permLevel) throws SQLException {
|
public void addNewUser(String user, String saltPassHash, int permLevel) throws SQLException {
|
||||||
PreparedStatement statement = null;
|
PreparedStatement statement = null;
|
||||||
try {
|
try {
|
||||||
statement = prepareStatement(Insert.values(tableName,
|
statement = prepareStatement(insertStatement);
|
||||||
columnUser,
|
|
||||||
columnSaltedHash,
|
|
||||||
columnPermLevel));
|
|
||||||
statement.setString(1, user);
|
statement.setString(1, user);
|
||||||
statement.setString(2, saltPassHash);
|
statement.setString(2, saltPassHash);
|
||||||
statement.setInt(3, permLevel);
|
statement.setInt(3, permLevel);
|
||||||
@ -110,6 +113,7 @@ public class SecurityTable extends Table {
|
|||||||
ResultSet set = null;
|
ResultSet set = null;
|
||||||
try {
|
try {
|
||||||
statement = prepareStatement(Select.all(tableName).toString());
|
statement = prepareStatement(Select.all(tableName).toString());
|
||||||
|
statement.setFetchSize(5000);
|
||||||
set = statement.executeQuery();
|
set = statement.executeQuery();
|
||||||
List<WebUser> list = new ArrayList<>();
|
List<WebUser> list = new ArrayList<>();
|
||||||
while (set.next()) {
|
while (set.next()) {
|
||||||
@ -125,4 +129,29 @@ public class SecurityTable extends Table {
|
|||||||
close(set, statement);
|
close(set, statement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addUsers(List<WebUser> users) throws SQLException {
|
||||||
|
if (Verify.isEmpty(users)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PreparedStatement statement = null;
|
||||||
|
try {
|
||||||
|
statement = prepareStatement(insertStatement);
|
||||||
|
for (WebUser user : users) {
|
||||||
|
String userName = user.getName();
|
||||||
|
String pass = user.getSaltedPassHash();
|
||||||
|
int permLvl = user.getPermLevel();
|
||||||
|
|
||||||
|
statement.setString(1, userName);
|
||||||
|
statement.setString(2, pass);
|
||||||
|
statement.setInt(3, permLvl);
|
||||||
|
statement.addBatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
statement.executeBatch();
|
||||||
|
commit(statement.getConnection());
|
||||||
|
} finally {
|
||||||
|
close(statement);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,8 @@ import java.util.UUID;
|
|||||||
* The copy methods assume that the table has been cleared, or that no duplicate data will be entered for a user.
|
* The copy methods assume that the table has been cleared, or that no duplicate data will be entered for a user.
|
||||||
* <p>
|
* <p>
|
||||||
* clearTable methods can be used to clear the table beforehand.
|
* clearTable methods can be used to clear the table beforehand.
|
||||||
|
* <p>
|
||||||
|
* Server & User tables should be copied first.
|
||||||
*
|
*
|
||||||
* @author Rsl1122
|
* @author Rsl1122
|
||||||
* @since 4.0.0
|
* @since 4.0.0
|
||||||
@ -62,4 +64,8 @@ public class BatchOperationTable extends Table {
|
|||||||
public void copyNicknames(BatchOperationTable toDB) throws SQLException {
|
public void copyNicknames(BatchOperationTable toDB) throws SQLException {
|
||||||
toDB.db.getNicknamesTable().insertNicknames(db.getNicknamesTable().getAllNicknames());
|
toDB.db.getNicknamesTable().insertNicknames(db.getNicknamesTable().getAllNicknames());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void copyWebUsers(BatchOperationTable toDB) throws SQLException {
|
||||||
|
toDB.db.getSecurityTable().addUsers(db.getSecurityTable().getUsers());
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user