v1.2.2
This commit is contained in:
parent
82335a5062
commit
bb9c347770
55
src/main/java/com/io/yutian/aulib/sql/SQLHelper.java
Normal file
55
src/main/java/com/io/yutian/aulib/sql/SQLHelper.java
Normal file
|
@ -0,0 +1,55 @@
|
|||
package com.io.yutian.aulib.sql;
|
||||
import com.io.yutian.aulib.sql.api.SQLManager;
|
||||
import com.io.yutian.aulib.sql.api.SQLQuery;
|
||||
import com.io.yutian.aulib.sql.api.util.TimeDateUtils;
|
||||
import com.io.yutian.aulib.sql.manager.SQLManagerImpl;
|
||||
import com.zaxxer.hikari.HikariConfig;
|
||||
import com.zaxxer.hikari.HikariDataSource;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Properties;
|
||||
|
||||
public class SQLHelper {
|
||||
|
||||
public static SQLManagerImpl createManager(
|
||||
@NotNull String driver, @NotNull String url,
|
||||
@NotNull String username, @Nullable String password) {
|
||||
HikariConfig config = new HikariConfig();
|
||||
config.setDriverClassName(driver);
|
||||
config.setJdbcUrl(url);
|
||||
config.setUsername(username);
|
||||
config.setPassword(password);
|
||||
return createManager(config);
|
||||
}
|
||||
|
||||
public static SQLManagerImpl createManager(@NotNull Properties properties) {
|
||||
return createManager(new HikariConfig(properties));
|
||||
}
|
||||
|
||||
public static SQLManagerImpl createManager(@NotNull HikariConfig config) {
|
||||
return new SQLManagerImpl(new HikariDataSource(config));
|
||||
}
|
||||
|
||||
public static void shutdownManager(SQLManager manager, boolean forceClose, boolean outputActiveQuery) {
|
||||
if (!manager.getActiveQuery().isEmpty()) {
|
||||
manager.getLogger().warn("There are " + manager.getActiveQuery().size() + " connections still running");
|
||||
for (SQLQuery value : manager.getActiveQuery().values()) {
|
||||
if (outputActiveQuery) {
|
||||
manager.getLogger().warn(String.format("#%s -> %s", value.getAction().getShortID(), value.getSQLContent()));
|
||||
manager.getLogger().warn(String.format("- execute at %s", TimeDateUtils.getTimeString(value.getExecuteTime())));
|
||||
}
|
||||
if (forceClose) value.close();
|
||||
}
|
||||
}
|
||||
if (manager.getDataSource() instanceof HikariDataSource) {
|
||||
//Close hikari pool
|
||||
((HikariDataSource) manager.getDataSource()).close();
|
||||
}
|
||||
}
|
||||
|
||||
public static void shutdownManager(SQLManager manager) {
|
||||
shutdownManager(manager, true, manager.isDebugMode());
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user