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

目录
相关文章
|
7月前
|
监控 druid Java
监控druid数据库连接池连接泄露的思路
监控druid数据库连接池连接泄露的思路
684 2
|
7月前
|
Arthas druid Java
一次druid数据库连接池连接泄露的排查分析
一次druid数据库连接池连接泄露的排查分析
632 1
|
4月前
|
druid Java 数据库连接
数据库连接池及Druid使用步骤
数据库连接池及Druid使用步骤
268 2
|
8月前
|
druid 数据库
数据库连接池——Druid
数据库连接池——Druid 一、好处 更方便地获取连接对象,效率高 资源可以更好的重复利用
|
11月前
|
druid Java 数据库连接
|
8天前
|
SQL 监控 druid
Druid数据库连接池简介及应用推广(老项目翻出来做下记录)
Druid数据库连接池简介及应用推广(老项目翻出来做下记录)
|
4月前
|
监控 druid Java
Druid【SpringBoot集成】监控数据库报错 Failed to bind properties under ‘‘ to javax.sql.DataSource 解决(含配置源码)
Druid【SpringBoot集成】监控数据库报错 Failed to bind properties under ‘‘ to javax.sql.DataSource 解决(含配置源码)
234 0
|
5月前
|
druid Java 数据库
德鲁伊druid数据库明文密码加密
德鲁伊druid数据库明文密码加密
373 0
德鲁伊druid数据库明文密码加密
|
3月前
|
监控 druid Java
数据库链接池HikariCP、Druid
数据库链接池HikariCP、Druid
|
4月前
|
SQL druid Java
jdbc(数据库连接池druid)
jdbc(数据库连接池druid)

热门文章

最新文章