80 lines
2.2 KiB
Java
80 lines
2.2 KiB
Java
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();
|
||
}
|
||
}
|
||
|
||
|
||
}
|