Druid的理解

   为什么使用数据库连接池:

        每次从数据库调用数据,先创建链接,结束时需要手动关闭释放资源,耗时and不安全,而且能同时支持的链接不多,在整个工程创建时,创建多个数据库链接集中管理,放进数据库连接池,使用时只要申请调用链接就行。

链接同时使用数量问题:
    数据库连接池在初始化的时候会创建initialSize个连接,当有数据库操作时,会从池中取出一个连接。如果当前池中正在使用的连接数等于maxActive,则会等待一段时间,等待其他操作释放掉某一个连接,如果这个等待时间超过了maxWait,则会报错;如果当前正在使用的连接数没有达到maxActive,则判断当前是否空闲连接,如果有则直接使用空闲连接,如果没有则新建立一个连接。在连接使用完毕后,不是将其物理连接关闭,而是将其放入池中等待其他操作复用。
示例:
import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSource;

public class DBSUtil {
//1 使用连接池 导入jar包
//2 创建DruidDataSource对象
    private static DruidDataSource dds;
//静态代码块    
    static{
//3 设置连接参数
        dds = new DruidDataSource();
        dds.setUrl("?");
        dds.setUsername("?");
        dds.setPassword("?");
    }
//获取对象函数    
    public static DataSource getDBDS(){
        return dds;
    }
//工具中获取数据库链接    
    public static Connection getDBConn(){
        try {
            return dds.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }    
}

架包:
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.9</version>
</dependency>

猜你喜欢

转载自blog.csdn.net/huifeidezhu521/article/details/80489610