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

yizhihongxing

关于数据库连接池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日

相关文章

  • pgsql 实现分页查询方式

    PgSQL是PostgreSQL的简称,是一种基于SQL的关系型数据库管理系统。在PgSQL中,分页查询非常常见,本文将详细讲解如何使用PgSQL实现分页查询方式。 分页查询的基本原理 分页查询主要是通过LIMIT和OFFSET这两个关键字实现的。LIMIT用于限制每次查询返回的记录数,OFFSET用于指定查询结果集的起始位置。 假设我们需要查询某张表的第6…

    database 2023年5月19日
    00
  • Django的Session存储Redis环境配置

      第一步:在项目目录下的settings.py中MIDDLEWARE中加上中间件: # session中间件Django项目默认启用Session ‘django.contrib.sessions.middleware.SessionMiddleware’, 第二步:在redis中保存session,需要引入第三方扩展,我们可以使用django-redis…

    Redis 2023年4月13日
    00
  • T-sql语句修改SQL Server数据库逻辑名、数据库名、物理名的方法

    要修改SQL Server数据库的逻辑名、数据库名、物理名,可以使用以下T-SQL语句: –修改数据库逻辑名 ALTER DATABASE [原数据库名] MODIFY NAME = [新数据库逻辑名]; –修改数据库名和物理名 ALTER DATABASE [原数据库名] MODIFY FILE (NAME = [原逻辑名], NEWNAME = [新…

    database 2023年5月21日
    00
  • Oracle SQLPlus导出数据到csv文件的方法

    下面是完整攻略: 1. 准备工作 在执行导出数据到CSV文件的操作之前,需要保证以下条件已满足: 确保已经安装了Oracle数据库和SQLPlus命令行工具; 确保已经连接到了需要导出数据的数据库; 确保已经创建好要导出的数据视图或者查询语句。 2. 导出数据到csv文件 接下来我们进入正题,介绍如何使用SQLPlus命令将查询结果导出到CSV文件中。 2.…

    database 2023年5月21日
    00
  • oracle中的trim函数使用介绍

    当你需要去除一个字符串的首尾空格时,可以使用 Oracle 中的 TRIM 函数。 TRIM 函数简介 TRIM 是 Oracle SQL 中字符串函数之一。它用于去除字符串两端的空格或者其它特定字符。 语法 TRIM ( [ [ [ LEADING | TRAILING | BOTH ] remove_string ] FROM ] source_stri…

    database 2023年5月22日
    00
  • MySQL Event事件(定时任务)是什么?

    MySQL是一种流行的关系型数据库管理系统,在实际应用中,我们经常需要执行一些预定的任务或是一些周期性的任务,以达到一定的目的,例如每日清理过期数据、备份数据等等。为了满足这些需求,MySQL提供了一个非常有用的功能——Event事件(定时任务)。 MySQL Event事件是什么 MySQL Event事件是一种可以自动执行任务的机制,类似于操作系统中的定…

    MySQL 2023年3月10日
    00
  • linux下安装升级mysql到新版本(5.1-5.7)

    下面是针对Linux系统下安装升级MySQL到新版本的完整攻略。 准备 在开始安装升级MySQL之前,需要确保已经安装并配置好了以下环境: gcc automake、autoconf libtool make bison ncurses-devel 另外,最新版的MySQL安装包可以从官方网站下载。 下载与解压 在服务器上下载MySQL二进制安装包 wget…

    database 2023年5月22日
    00
  • Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数示例代码

    下面是Docker部署SpringBoot项目整合Redis镜像做访问计数的完整攻略,包括以下几个步骤: 1. 编写SpringBoot项目代码 首先需要编写一个基于SpringBoot框架的Web项目,并在其中整合Redis用于做访问计数。这个项目需要满足以下几点: 有一个访问计数的处理逻辑,每次访问该项目时,访问计数都会加一。 整合了Redis,并在每次…

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