1. druid数据库连接池

1.1定义

数据库连接池负责分类,管理和释放数据库连接,他允许应用程序重复使用一个现有的数据库连接,不用重复建立连接,避免因重复建立连接而浪费时间。这项技术能够明显提高对数据库操作的性能。

1.2 使用方式

引入Druid包,在配置文件中,按照规填写相关配置信息

创建properties对象读取配置文件信息,使用DruidDataSoureFactory.createDataSource(properties)方法,把数据库的各项参数传递给德鲁伊数据源工厂,从而创建一个连接池对象。

这样,每次需要连接的时候,就通过连接池获取连接对象,使用后通过close()方法将连接归还给连接池,避免了连接的重复创建。

1.3封装工具类

/**
 * 数据库连接池 
 * @author Administrator
 *
 */
public class DruidDataSource {

    // 连接池
    public static DataSource ds;

    private DruidDataSource(){}

    // 类加载的时候初始化连接池
    static {
        try {
            // 加载配置文件
            Properties prop = new Properties();
            prop.load(ClassLoader.getSystemResourceAsStream("druid.properties"));
            ds = DruidDataSourceFactory.createDataSource(prop);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    // 从连接池中获取连接对象
    public static Connection getConnection() {
        try {
            return ds.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    // 获取数据源
    public static DataSource getDataSource(){
        return ds;
    }

    // 释放资源
    public static void close(Connection conn, Statement stat, ResultSet rs) {
        try {
            if (rs != null) {
                rs.close();
            }
            if (stat != null) {
                stat.close();
            }
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }

    }

    // 释放资源
    public static void close(Connection conn, Statement stat) {
        close(conn, stat, null);
    }
}

1.4 maven引入依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.9</version>
</dependency>
如人饮水,冷暖自知。
最后更新于 2023-08-05