import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
class HikariCPUtil {
// db.properties文件檔案
// url=jdbc:mysql://localhost:3306/bookshop?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
// user=root
// pass=0203
// driver=com.mysql.cj.jdbc.Driver
private HikariConfig config;
private HikariDataSource dataSource;
public void setConfig(HikariConfig config) {
this.config = config;
dataSource = new HikariDataSource(config);
}
public void setConfig(Properties properties) {
config = new HikariConfig();
config.setDriverClassName(properties.getProperty("driver"));
config.setUsername(properties.getProperty("user"));
config.setPassword(properties.getProperty("pass"));
config.setJdbcUrl(properties.getProperty("url"));
dataSource = new HikariDataSource(config);
}
public void setConfig(String path) throws IOException {
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(path);
Properties properties = new Properties();
properties.load(is);
setConfig(properties);
}
public HikariConfig getConfig() {
return config;
}
public HikariDataSource getDataSource() {
return dataSource;
}
public final Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
public void close(Connection connection, Statement statement, ResultSet resultSet) {
try {
if (resultSet != null) {
resultSet.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (statement != null) {
statement.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (connection != null) {
connection.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
基於HikariCP的工具類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.