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
2018-11-08 15:38:33 +08:00

80 lines
2.2 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);//最大等待时间
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();
}
}
}