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.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(); } } }