-
介绍
DruidDataSource是Druid数据库连接池的一种实现。它是一个Java数据库连接池,用于连接JDBC数据源。 DruidDataSource提供了一些高级功能,比如防御SQL注入攻击,监控和统计信息,高效的空闲连接回收等。 DruidDataSource使用了高效的算法来管理数据库连接,可以提高数据库的性能。 DruidDataSource的配置简单,常用的配置参数有数据库连接URL,用户名,密码,最大连接数等。 -
代码示例
import com.alibaba.druid.pool.DruidDataSource; public class DruidTest { public static void main(String[] args) { // 创建Druid数据源 DruidDataSource dataSource = new DruidDataSource(); // 设置数据库连接URL dataSource.setUrl("jdbc:mysql://localhost:3306/test"); // 设置数据库用户名 dataSource.setUsername("root"); // 设置数据库密码 dataSource.setPassword("root"); // 设置连接池的初始连接数 dataSource.setInitialSize(5); // 设置连接池的最大连接数 dataSource.setMaxActive(10); // 设置连接池的最小空闲连接数 dataSource.setMinIdle(3); // 设置连接池的最大空闲连接数 dataSource.setMaxIdle(5); // 设置连接池的最大等待时间 dataSource.setMaxWait(5000); // 设置连接池的验证查询语句 dataSource.setValidationQuery("select 1 from dual"); // 设置连接池的验证查询超时时间 dataSource.setValidationQueryTimeout(3000); // 启用监控统计功能 dataSource.setUseGlobalDataSourceStat(true); // 启用连接泄露自动检测 dataSource.setRemoveAbandoned(true); // 设置连接泄露检测时间 dataSource.setRemoveAbandonedTimeout(60); // 设置连接泄露检测回收资源 dataSource.setLogAbandoned(true); try { // 初始化连接池 dataSource.init(); // 使用连接池获取连接 Connection conn = dataSource.getConnection(); // 执行数据库操作 Statement stat = conn.createStatement(); ResultSet rs = stat.executeQuery("SELECT * FROM user"); while(rs.next()) { System.out.println(rs.getString("name")); } // 关闭连接 rs.close(); stat.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭连接池 dataSource.close(); } } }