Druid数据库连接池的简单使用

简介:
public class DruidPool {    
    private static DruidDataSource _dds = null;    
    private static class DruidPoolHolder {        
        public static DruidPool _databasePool = new DruidPool();
    }    
    
    static {        
        NormalSettingFactory factory = NormalSettingFactory.getInstance();        
        File file = new File("druidpool.properties");        
        NormalSetting normalSetting = factory.createSetting(file, Setting.PROPERTY);        
        Properties properties = normalSetting.getProperties();//读取配置文件

        try {
            _dds = (DruidDataSource) DruidDataSourceFactory
                    .createDataSource(properties);            
            System.out.println("DruidPool Inited");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }    
    
    private DruidPool() {}  //singleton

    public void init() {        
        try {            
            DruidPooledConnection connection = this.getConnection();
            connection.recycle();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }    
    
    /**     
     * 得到一个数据库连接池实例     
     * @return ConnectionPool 实例     
     */
    public static DruidPool getInstance() {        
        return DruidPoolHolder._databasePool;
    }    
    
    /**     
     * 得到一个连接     
     * @return DruidPooledConnection 一个连接     
     * @throws SQLException SQL异常     
     */
    public DruidPooledConnection getConnection() throws SQLException {        
        return _dds.getConnection();
    }    
    
    /**     
     * 关闭数据库连接池     
     */
    public void close() {
        _dds.close();
    }
}

由于当中使用了我自己的SettingManager类,该类的地址在我的GitHub上,不过使用Java自带的Properties也可以实现配置.
由于使用了LazyLoad,如果用户需要第一次就撞在完成,则可以考虑如下的调用顺序:

DruidPool druidPool = DruidPool.getInstance();
UUDIManager uudiManager = UUDIManager.getInstance();
MapperFactory mapperFactory = MapperFactory.getInstance();
Main_ServerSocket serverSocket = Main_ServerSocket.getInstance();
//----------------------------------------
//以上是声明组件druidPool.init();uudiManager.init();mapperFactory.init();serverSocket.init();
//----------------------------------------
//由于使用了LazyLoad,所以需要激活mapperFactory.autoInit();


接下来是配置文件的内容:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test
username=root
password=delta-boyMIKE
filters=stat
initialSize=30
maxActive=5000
maxWait=60000
timeBetweenEvictionRunsMillis=60000
minEvictableIdleTimeMillis=300000
validationQuery=SELECT 1
testWhileIdle=truetestOnBorrow=falsetestOnReturn=falsepoolPreparedStatements=falsemaxPoolPreparedStatementPerConnectionSize=500

目录
相关文章
|
8月前
|
druid Java 数据库
druid+springboot加解密Druid链接池配置加密密码链接数据库
druid+springboot加解密Druid链接池配置加密密码链接数据库
388 0
|
监控 druid Java
监控druid数据库连接池连接泄露的思路
监控druid数据库连接池连接泄露的思路
1264 2
|
Arthas druid Java
一次druid数据库连接池连接泄露的排查分析
一次druid数据库连接池连接泄露的排查分析
1422 1
|
8月前
|
druid Java 数据库连接
数据库连接池及Druid使用步骤
数据库连接池及Druid使用步骤
749 2
|
6月前
|
SQL druid Java
线程池相关故障问题之Druid数据库连接池中,为何需要设置TransactionTimeout
线程池相关故障问题之Druid数据库连接池中,为何需要设置TransactionTimeout
195 0
|
7月前
|
druid 数据库
杨校老师课堂之基于阿里巴巴的数据库连接池Druid的工具类开发
杨校老师课堂之基于阿里巴巴的数据库连接池Druid的工具类开发
48 0
|
5月前
|
druid Java 数据库连接
SpringBoot项目整合MybatisPlus持久层框架+Druid数据库连接池,以及实现增删改查功能
SpringBoot项目整合MybatisPlus和Druid数据库连接池,实现基本的增删改查功能。
441 0
|
8月前
|
监控 druid Java
Druid【SpringBoot集成】监控数据库报错 Failed to bind properties under ‘‘ to javax.sql.DataSource 解决(含配置源码)
Druid【SpringBoot集成】监控数据库报错 Failed to bind properties under ‘‘ to javax.sql.DataSource 解决(含配置源码)
658 0
|
druid Java 数据库
德鲁伊druid数据库明文密码加密
德鲁伊druid数据库明文密码加密
700 0
德鲁伊druid数据库明文密码加密
|
8月前
|
SQL 监控 druid
Druid数据库连接池简介及应用推广(老项目翻出来做下记录)
Druid数据库连接池简介及应用推广(老项目翻出来做下记录)