package com.jiufive.backend.jdbc;
import com.zaxxer.hikari.HikariDataSource;
import java.beans.PropertyVetoException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
/**
-
@PACKAGE com.jiufive.backend.jdbc
-
@AUTHOR tan_yh
-
@Description
-
@Date 2020/4/1915:11
-
@Version 1.0
*/
public class HikariConnectionPool {
private static volatile HikariConnectionPool dbConnection;
HikariDataSource cpds ;private HikariConnectionPool() {
try {
/通过属性文件获取数据库连接的参数值/
Properties properties = new Properties();
// FileInputStream fileInputStream = new FileInputStream(“src/config/jdbc-mysql.properties”);
InputStream inStream = DBConnectionPool.class.getClassLoader().getResourceAsStream(“jdbc-mysql.properties”);
// FileInputStream fileInputStream = new FileInputStream(“src/config/jdbc-oracle.properties”);;
properties.load(inStream);
/获取属性文件中的值/
String driverClassName = properties.getProperty(“jdbc.driverClassName”);
String url = properties.getProperty(“jdbc.url”);
String username = properties.getProperty(“jdbc.username”);
String password = properties.getProperty(“jdbc.password”);/**数据库连接池对象**/ cpds = new HikariDataSource(); /**设置数据库连接驱动**/ cpds.setDriverClassName(driverClassName); /**设置数据库连接地址**/ cpds.setJdbcUrl(url); /**设置数据库连接用户名**/ cpds.setUsername(username); /**设置数据库连接密码**/ cpds.setPassword(password); cpds.addDataSourceProperty("cachePrepStmts", "true"); cpds.addDataSourceProperty("prepStmtCacheSize", "250"); cpds.addDataSourceProperty("prepStmtCacheSqlLimit", "2048"); //连接池最大连接数,默认是10 cpds.setMaximumPoolSize(20); //此属性控制从池返回的连接的默认自动提交行为,默认值:true cpds.setAutoCommit(true); //此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟 cpds.setMaxLifetime(1800000); //数据库连接超时时间,默认30秒,即30000 cpds.setConnectionTimeout(30000); //空闲连接存活最大时间,默认600000(10分钟) cpds.setIdleTimeout(600000); //最小空闲连接数量 cpds.setMinimumIdle(10); } catch (IOException e) { e.printStackTrace(); }
}
/**
- 获取数据库连接对象,单例
- @return
*/
public static HikariConnectionPool getInstance() {
if (dbConnection == null) {
synchronized (HikariConnectionPool.class) {
if (dbConnection == null) {
dbConnection = new HikariConnectionPool();
}
}
}
return dbConnection;
}
/**
- 获取数据库连接
- @return 数据库连接
*/
public final synchronized Connection getConnection() throws SQLException {
return cpds.getConnection();
}
//关闭连接池
public void close(){
getDataSource().close();
}
public HikariDataSource getDataSource() {
return cpds;
}public void setDataSource(HikariDataSource dataSource) {
this.cpds = dataSource;
}
}
jdbc-mysql.properties文件内容如下:
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/data_net?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=test
再说说现在的股市,今天股市不算是大跌吧,算小跌,具体看看今天得K线图:
看看这个A股,横盘多久了,这就是他们的所谓慢牛,上周五,IPO的单天数量是8家,搞注册制搞疯了。现在的上市企业基本上都是打着搞科技,可是实际上这个公司的盈利情况就不得而知了,有些公司基本上都是鱼目混珠、滥竽充数。估计A股的下跌只是开始,大幅度杀跌在后面。大家要小心了。最好是不要再进股市了。