Skip to content

Commit 79ee0de

Browse files
committed
move duplicated code in sql storage
1 parent 29c6e91 commit 79ee0de

File tree

3 files changed

+20
-35
lines changed

3 files changed

+20
-35
lines changed

storage/simple/src/main/java/me/hsgamer/topper/storage/simple/supplier/MySqlStorageSupplier.java

+2-16
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@
33
import me.hsgamer.hscore.database.Setting;
44
import me.hsgamer.hscore.database.client.sql.java.JavaSqlClient;
55
import me.hsgamer.hscore.database.driver.mysql.MySqlDriver;
6-
import me.hsgamer.hscore.logger.common.LogLevel;
76

8-
import java.sql.Connection;
9-
import java.sql.SQLException;
107
import java.util.Collections;
118
import java.util.List;
129
import java.util.function.Consumer;
@@ -21,19 +18,8 @@ public MySqlStorageSupplier(Consumer<Setting> databaseSettingConsumer) {
2118
}
2219

2320
@Override
24-
protected Connection getConnection() throws SQLException {
25-
Connection connection = client.getConnection();
26-
connection.setAutoCommit(false);
27-
return connection;
28-
}
29-
30-
@Override
31-
protected void flushConnection(Connection connection) {
32-
try {
33-
connection.close();
34-
} catch (SQLException e) {
35-
logger.log(LogLevel.ERROR, "Failed to close connection", e);
36-
}
21+
public JavaSqlClient getClient() {
22+
return client;
3723
}
3824

3925
@Override

storage/simple/src/main/java/me/hsgamer/topper/storage/simple/supplier/SqlStorageSupplier.java

+16-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package me.hsgamer.topper.storage.simple.supplier;
22

33
import me.hsgamer.hscore.database.client.sql.BatchBuilder;
4+
import me.hsgamer.hscore.database.client.sql.SqlClient;
45
import me.hsgamer.hscore.database.client.sql.StatementBuilder;
56
import me.hsgamer.hscore.logger.common.LogLevel;
67
import me.hsgamer.hscore.logger.common.Logger;
@@ -16,14 +17,26 @@
1617
public abstract class SqlStorageSupplier implements DataStorageSupplier {
1718
protected final Logger logger = LoggerProvider.getLogger(getClass());
1819

19-
protected abstract Connection getConnection() throws SQLException;
20-
21-
protected abstract void flushConnection(Connection connection);
20+
protected abstract SqlClient<?> getClient();
2221

2322
protected abstract List<String> toSaveStatement(String name, String[] keyColumns, String[] valueColumns);
2423

2524
protected abstract List<Object[]> toSaveValues(Object[] keys, Object[] values);
2625

26+
private Connection getConnection() throws SQLException {
27+
Connection connection = getClient().getConnection();
28+
connection.setAutoCommit(false);
29+
return connection;
30+
}
31+
32+
private void flushConnection(Connection connection) {
33+
try {
34+
connection.close();
35+
} catch (SQLException e) {
36+
logger.log(LogLevel.ERROR, "Failed to close connection", e);
37+
}
38+
}
39+
2740
@Override
2841
public <K, V> DataStorage<K, V> getStorage(String name, ValueConverter<K> keyConverter, ValueConverter<V> valueConverter) {
2942
return new DataStorage<K, V>() {

storage/simple/src/main/java/me/hsgamer/topper/storage/simple/supplier/SqliteStorageSupplier.java

+2-16
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,8 @@
33
import me.hsgamer.hscore.database.Setting;
44
import me.hsgamer.hscore.database.client.sql.java.JavaSqlClient;
55
import me.hsgamer.hscore.database.driver.sqlite.SqliteFileDriver;
6-
import me.hsgamer.hscore.logger.common.LogLevel;
76

87
import java.io.File;
9-
import java.sql.Connection;
10-
import java.sql.SQLException;
118
import java.util.Arrays;
129
import java.util.List;
1310
import java.util.function.Consumer;
@@ -22,19 +19,8 @@ public SqliteStorageSupplier(Consumer<Setting> databaseSettingConsumer, File bas
2219
}
2320

2421
@Override
25-
protected Connection getConnection() throws SQLException {
26-
Connection connection = client.getConnection();
27-
connection.setAutoCommit(false);
28-
return connection;
29-
}
30-
31-
@Override
32-
protected void flushConnection(Connection connection) {
33-
try {
34-
connection.close();
35-
} catch (SQLException e) {
36-
logger.log(LogLevel.ERROR, "Failed to close connection", e);
37-
}
22+
public JavaSqlClient getClient() {
23+
return client;
3824
}
3925

4026
@Override

0 commit comments

Comments
 (0)