This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
nms-nmsserver/src/com/nms/server/util/DruidPool.java

80 lines
2.2 KiB
Java
Raw Normal View History

2018-09-27 16:17:06 +08:00
package com.nms.server.util;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import org.apache.log4j.Logger;
import com.alibaba.druid.pool.DruidDataSource;
import com.nms.server.common.Constants;
public class DruidPool {
private static DruidDataSource ds;
private static Logger logger = Logger.getLogger(DruidPool.class);
public static void initPool() throws SQLException {
URL urlObj = DruidPool.class.getClassLoader().getResource("druid.properties");
Properties properties = new Properties();
if(urlObj==null){
System.err.println("找不到配置文件druid.properties");
logger.error("No configuration file can be found: druid.properties");
System.exit(0);
}else{
try {
properties.load(new FileInputStream(urlObj.getPath().replaceAll("%20", " ")));
logger.debug("配置文件druid.properties 加载完成");
} catch (IOException e) {
logger.error("Reading properties file error"+"",e);
}
}
ds = new DruidDataSource();
ds.setUrl(Constants.DB_URL);
ds.setDriverClassName(Constants.DB_DRIVER);
ds.setUsername(Constants.DB_USER_NAME);
ds.setPassword(Constants.DB_PASSWORD);
ds.configFromPropety(properties);
ds.setName("Druid连接池");
ds.setMaxWait(Constants.DRUID_MAXWAIT_MILLIS);//最大等待时间
2018-09-27 16:17:06 +08:00
ds.init();
logger.debug("Druid初始化连接池成功,"+ds.toString());
}
public static Connection getConnection() throws SQLException{
Connection connection = ds.getConnection();
logger.debug("获取连接成功");
boolean closed = connection.isClosed();
if( closed){
logger.warn("connection.toString()->" + connection.toString());
}
logger.debug("closed("+closed+"),autoCommit="+connection.getAutoCommit()+", "+ ds.toString());
connection.setAutoCommit(true);
return connection;
}
public static void shutdown(){
if(ds != null){
ds.close();
}
}
public static void main(String[] args) {
try {
initPool();
Connection connection = getConnection();
System.out.println(connection);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}