德魯伊連接池-Druid


利用Druid連接池獲得數據庫連接(得到一個連接對象):
package com.hk.utils;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;

public class DbUtils {

    private static DruidDataSource druidDataSource;
    //初始化德魯伊連接池
    static {
        //getClassLoader();得到類加載器對象(單例)
        InputStream is =  DbUtils.class.getClassLoader().getResourceAsStream("druid.properties");//得到信息流
        Properties properties = new Properties();//配置文件對象
        try {
            properties.load(is);//讀取配置文件
            is.close();
            druidDataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);//加載配置文件,獲取德魯伊連接池
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //獲取數據庫連接對象
    public static Connection getConnection() {
        Connection conn = null;
        try{
            conn = druidDataSource.getConnection();
        }catch (Exception ex) {
            ex.printStackTrace();
        }
        return conn;
    }

    //關閉結果集和數據庫處理對象(或預處理對象)和數據庫連接對象(數據連接池本質上不會被關閉)
    public static void close(ResultSet rs, Statement statement, Connection conn) {
        try{
            if(null != rs) {
                rs.close();
            }
            if(null != statement) {
                statement.close();
            }
            if(null != conn) {
                conn.close();
            }
        }catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

配置文件信息:
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/javaweb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
username=root
password=123456

#初始化的時候,連接池中放多少個連接
initialSize=10

# 最大存貨的連接數量
maxActive=50

#最小空閑數量
minIdle=5

#配置獲取連接等待超時的時間
maxWait=10000

#驗證連接池中的連接是否有效的sql語句
validationQuery='select 1'

#在獲取連接的時候,驗證拿到連接是否為有效連接
testOnBorrow=false

#在歸還連接的時候,驗證是否為有效連接
test-on-return=false

#空閑的時候驗證是否有效
test-while-idle=true


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM