关于数据库连接池Druid使用说明

关于数据库连接池Druid使用说明

前言

Druid是一款高性能的数据库连接池和监控工具。它提供了比其他连接池更多的监控统计信息,并且支持SQL防注入等功能。

引入依赖

在pom.xml文件中添加以下代码:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>

配置文件

在src/main/resources目录下创建druid.properties配置文件,添加以下内容:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false
username=root
password=root
initialSize=5
maxActive=10
minIdle=3
maxWait=60000
validationQuery=SELECT 1
testOnBorrow=false
testOnReturn=false
testWhileIdle=true
timeBetweenEvictionRunsMillis=60000
minEvictableIdleTimeMillis=25200000
poolPreparedStatements=false

其中:

  • driverClassName:驱动类名
  • url:数据库连接地址,改成自己数据库的地址
  • username:数据库用户名
  • password:数据库密码
  • initialSize:初始化连接数量
  • maxActive:最大连接数量
  • minIdle:最小连接数量
  • maxWait:最长等待时间
  • validationQuery:验证连接是否可用的sql语句
  • testOnBorrow、testOnReturn、testWhileIdle:设置连接是否被空闲连接回收器检查
  • timeBetweenEvictionRunsMillis:空闲连接每隔多久检查一次
  • minEvictableIdleTimeMillis:连接池中连接最小空闲时间,超过此时间连接将被销毁
  • poolPreparedStatements:是否使用preparedstatement缓存预编译语句。设置是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,例如Oracle。在mysql下建议关闭。

Java代码示例

获取连接

import com.alibaba.druid.pool.DruidDataSource;
import java.sql.Connection;
import java.sql.SQLException;

public class TestDruid {
    private static DruidDataSource dataSource;

    static {
        dataSource = new DruidDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false");
        dataSource.setUsername("root");
        dataSource.setPassword("root");
        dataSource.setInitialSize(5); // 初始化连接数量
        dataSource.setMaxActive(10); // 最大连接数量
        dataSource.setMinIdle(3); // 最小连接数量
        dataSource.setMaxWait(60000); // 最长等待时间
        dataSource.setValidationQuery("SELECT 1"); // SQL检测可用性
        dataSource.setTestOnBorrow(false);
        dataSource.setTestWhileIdle(true);
        dataSource.setTimeBetweenEvictionRunsMillis(60000); // 连接检测间隔时间
        dataSource.setMinEvictableIdleTimeMillis(25200000); // 最小空闲连接时间
        dataSource.setPoolPreparedStatements(false); // 关闭PSCache

    }

    public static Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }

}

使用Druid连接池

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class TestConnect {
    public static void main(String[] args) throws SQLException {
        Connection connection = TestDruid.getConnection(); // 获取连接
        String sql = "SELECT * FROM user where id=1";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        ResultSet resultSet = preparedStatement.executeQuery();
        while (resultSet.next()) {
            System.out.println(resultSet.getLong("id"));
            System.out.println(resultSet.getString("name"));
            System.out.println(resultSet.getInt("age"));
        }
        resultSet.close();
        preparedStatement.close();
        connection.close(); // 释放连接
    }
}

总结

上述代码示例是Druid连接池的基础使用,一般情况下可以通过基础配置和代码示例进行使用,当然也可以在此基础上根据个人需求调整一些参数,例如连接池的最大数量、最小数量、空闲连接时间,都可以在配置文件中进行设置。如果需要更详细的了解,也可以进一步查阅官方文档。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于数据库连接池Druid使用说明 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • 解决python写入mysql中datetime类型遇到的问题

    下面我为你介绍解决Python写入MySQL中datetime类型遇到的问题的完整攻略。 问题背景 MySQL数据库中的datetime类型在Python中的写入与读取操作中常常会遇到一些问题,如写入的时间与MySQL数据库中实际存储的时间不一致、读取的时间格式不正确等等,这些问题都是由于datetime类型在不同的环境中使用时格式的不同所引起的。 解决步骤…

    database 2023年5月22日
    00
  • MySQL锁监控

    MySQL锁监控是指通过监控MySQL数据库中的锁信息,了解系统中正在发生的锁冲突情况,从而识别潜在的性能瓶颈或问题,并采取相应的措施进行优化和解决。 具体来说,MySQL锁监控主要通过以下几个方面来实现: 了解锁类型和锁范围:通过监控MySQL数据库中不同类型的锁(如共享锁、排他锁等)以及锁的范围(如行锁、表锁等),可以判断锁的具体情况和影响范围。 分析锁…

    MySQL 2023年3月10日
    00
  • 如何在Linux下修改Mysql的用户(root)密码

    下面是在Linux下修改Mysql的用户(root)密码的完整攻略: 第一步:登录MySQL 首先,要登录MySQL,使用以下命令: mysql -u root -p 上面的命令中,-u参数指定用户名为root,-p参数表示需要输入密码才能登录MySQL。 第二步:修改密码 登录成功后,使用以下语句修改root用户的密码: ALTER USER ‘root’…

    database 2023年5月22日
    00
  • php Mysql日期和时间函数集合

    PHP和MySQL的日期和时间函数非常重要。 它们可以让开发人员轻松地处理日期和时间,并进行基于日期和时间的操作。 本文将介绍一些常用的日期和时间函数集合。 日期函数 date函数 date函数可以将时间戳格式化为日期字符串,例如: $date = date(‘Y-m-d H:i:s’, time()); echo $date; // 输出当前日期时间 其中…

    database 2023年5月22日
    00
  • MySQL获取binlog的开始时间和结束时间(最新方法)

    首先,我们需要确定MySQL的binlog格式。MySQL支持行模式(row)、语句模式(statement)和混合模式(mixed),你可以通过执行SHOW GLOBAL VARIABLES LIKE ‘binlog_format’;来获取当前MySQL实例的binlog格式。 确定binlog格式后,我们可以通过以下方法获取MySQL的binlog的开始…

    database 2023年5月22日
    00
  • Linux安装Redis步骤和make遇到的坑

    Linux安装Redis服务步骤 1.获取redis资源 ​​​​​​​cd /usr/local wget https://mirrors.huaweicloud.com/redis/redis-6.0.10.tar.gz 2.解压 tar xzvf redis-6.0.10.tar.gz 3.安装 cd redis-6.0.10 make cd src …

    Redis 2023年4月13日
    00
  • yii2 下的redis常用命令集合

    <?php \Yii::$app->redis->set(‘user’,’aaa’); \Yii::$app->redis->set(‘user2′,’bbb’); \Yii::$app->redis->set(‘user3′,’ccc’); \Yii::$app->redis->set(‘user4’,…

    Redis 2023年4月16日
    00
  • Docker搭建MySQL5.7主从复制的实现

    下面是关于Docker搭建MySQL5.7主从复制的实现的完整攻略。 1. 安装Docker Docker是一种容器化技术,可以方便地部署应用程序。因此,我们首先需要安装Docker。 对于Mac和Windows用户,可以在官网上下载对应的安装包进行安装;对于Ubuntu用户,可以使用以下命令进行安装: sudo apt-get update sudo ap…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部