Java开发druid数据连接池maven方式简易配置流程示例

如您所说,本人将为您提供Java开发druid数据连接池maven方式简易配置流程示例的完整攻略。

一、引入druid连接池的maven依赖

首先,在Java项目的pom.xml文件中引入druid连接池的maven依赖。示例如下:

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

以上代码表示引用了druid连接池的1.1.19版本。

二、在配置文件中添加数据源配置

其次,我们需要在项目的配置文件(application.properties或application.yml)中添加数据源的相关配置。

以下是使用application.properties配置文件的示例:

# 数据源配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root

# Druid连接池配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.filters=wall,stat
spring.datasource.maxActive=20
spring.datasource.initialSize=10
spring.datasource.maxWait=60000
spring.datasource.minIdle=5
spring.datasource.timeBetweenEvictionRunsMillis=60000
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.testWhileIdle=true
spring.datasource.validationQuery=SELECT 1 FROM DUAL

以上代码表示配置了一个名为test的数据库的数据源,采用了Druid连接池。其中,与Druid连接池相关的配置项包括:

  • spring.datasource.type:连接池的类型,这里我们指定为DruidDataSource;
  • spring.datasource.filters:Druid连接池的filter配置,此处包括了wall(防SQL注入)和stat(统计SQL执行信息)两个过滤器;
  • spring.datasource.maxActive:连接池中能同时活跃的最大连接数;
  • spring.datasource.initialSize:初始化时建立连接池中连接的个数;
  • spring.datasource.maxWait:获取连接时最大等待时间,单位毫秒;
  • spring.datasource.minIdle:最小空闲连接数;
  • spring.datasource.timeBetweenEvictionRunsMillis:回收检查时间间隔,单位毫秒;
  • spring.datasource.minEvictableIdleTimeMillis:最小空闲时间,达到此时间后连接将被移除,单位毫秒;
  • spring.datasource.testWhileIdle:空闲连接检测是否可用;
  • spring.datasource.validationQuery:连接检查语句,用于检查连接是否可用,这里我们以SELECT 1 FROM DUAL作为检查语句。

三、在Java代码中使用Druid连接池

最后,在Java代码中使用配置好的Druid连接池即可。示例如下:

@Autowired
private DataSource dataSource;

public void testConnection() throws SQLException {
    Connection conn = dataSource.getConnection();
    // 具体业务逻辑
    conn.close();
}

以上代码表示在Java类中注入了名为dataSource的数据源,并在testConnection方法中使用该数据源获取连接。具体业务逻辑在注释中省略。

示例一

在Spring Boot项目中使用Druid连接池的示例:

  1. 创建Spring Boot项目并添加Druid依赖。
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.10</version>
</dependency>
  1. 配置数据源

在application.yml中添加数据源的相关配置信息:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver

    # Druid连接池配置
    type: com.alibaba.druid.pool.DruidDataSource
    initial-size: 5
    max-active: 50
    min-idle: 5
    max-wait: 60000
    time-between-eviction-runs-millis: 60000
    validation-query: SELECT 1 FROM DUAL
  1. 在Java代码中使用Druid连接池

示例代码:

@RestController
public class DemoController {
    @Autowired
    private DataSource dataSource;

    @GetMapping("/test")
    public String test() throws SQLException {
        Connection conn = dataSource.getConnection();
        System.out.println(conn.getMetaData().getURL());
        conn.close();
        return "success";
    }
}

上述代码在Spring Boot应用中使用@Autowired注解注入数据源,并在test()方法中获取连接并打印连接的URL。

示例二

在Java Web项目中使用Druid连接池的示例:

  1. 创建Java Web项目并添加Druid依赖。
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.19</version>
</dependency>
  1. 配置数据源

在web.xml中添加数据源的相关配置信息:

<context-param>
    <param-name>webAppName</param-name>
    <param-value>druid</param-value>
</context-param>

<filter>
    <filter-name>druidWebStatFilter</filter-name>
    <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
    <init-param>
        <param-name>exclusions</param-name>
        <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>druidWebStatFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<servlet>
    <servlet-name>druidStatViewServlet</servlet-name>
    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
    <init-param>
        <param-name>loginUsername</param-name>
        <param-value>admin</param-value>
    </init-param>
    <init-param>
        <param-name>loginPassword</param-name>
        <param-value>admin</param-value>
    </init-param>
    <init-param>
        <param-name>resetEnable</param-name>
        <param-value>false</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>druidStatViewServlet</servlet-name>
    <url-pattern>/druid/*</url-pattern>
</servlet-mapping>

<resource-ref>
    <description>druid datasource</description>
    <res-ref-name>jdbc/datasource</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>
  1. 在Java代码中使用Druid连接池

示例代码:

public class DemoServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    private DataSource dataSource;

    @Override
    public void init() throws ServletException {
        try {
            InitialContext ic = new InitialContext();
            dataSource = (DataSource) ic.lookup("java:/comp/env/jdbc/datasource");
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            Connection conn = dataSource.getConnection();
            System.out.println(conn.getMetaData().getURL());
            conn.close();
            response.getWriter().write("success");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

上述代码在Java Web应用中使用JNDI获取数据源,并在doGet()方法中获取连接并打印连接的URL。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java开发druid数据连接池maven方式简易配置流程示例 - Python技术站

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

相关文章

  • Java如何利用return结束方法调用

    当Java方法执行到return语句时,方法会立即停止执行并返回指定的值(如果有的话)。在这个过程中,所有未完成的代码将不再执行。 要利用return结束方法调用,需要在方法的内部使用return关键字,并提供返回值。下面是使用return的基本语法: public int add(int a, int b) { int sum = a + b; retur…

    Java 2023年5月26日
    00
  • Java实现雪花算法的示例代码

    题目:Java实现雪花算法的示例代码 1. 什么是雪花算法? 雪花算法(Snowflake)是Twitter公司开发的一种唯一ID生成算法,它可以生成一个长度为64bit的唯一ID,被广泛应用于分布式系统中,这样可以避免ID冲突的情况。 雪花算法的生成,主要依靠了数据中心ID(5位)、机器ID(5位)、时间戳(41位)以及自增的序列(12位)。 2. 雪花算…

    Java 2023年5月18日
    00
  • Java开发岗位面试被问到反射怎么办

    当你在Java开发面试时被问到反射相关的问题时,需要详细解释反射的概念和使用方法,以及反射在实际项目中的应用。 以下是完整的攻略流程: 1. 理解反射的概念 反射是Java语言的一种特性,可以在运行时动态获取类的信息并操作对象。反射可以使代码更加灵活和可扩展,但过度使用反射也会导致代码难以维护和调试。因此,反射的使用应该谨慎,并在适当的情况下使用。 2. 学…

    Java 2023年5月26日
    00
  • 详解SpringBoot项目整合Vue做一个完整的用户注册功能

    我们来详细讲解一下“详解SpringBoot项目整合Vue做一个完整的用户注册功能”。这个攻略分两个部分:服务器端和客户端。我们分别来讲解。 服务器端 1. 创建SpringBoot项目 首先,我们需要在IDE中创建一个SpringBoot项目。可以使用Spring Initializr创建一个简单的Java Web项目,或者自己使用Maven创建。 2. …

    Java 2023年5月20日
    00
  • Spring Boot超详细讲解请求处理流程机制

    Spring Boot超详细讲解请求处理流程机制 Spring Boot请求处理流程概述 在Spring Boot中,请求处理流程一般可以分为以下几个步骤: 浏览器发送HTTP请求。 请求到达本地服务器,并被Spring Boot框架接收。 Spring Boot对请求进行预处理,包括对请求头、请求参数、cookie进行解析,以及对请求URL进行映射。 根据…

    Java 2023年5月19日
    00
  • 老生常谈Java反射机制(必看篇)

    老生常谈Java反射机制(必看篇) 什么是Java反射机制? Java反射机制是Java提供的一种能够在运行时获取对象的信息以及修改对象的内容的方法。通过反射机制,程序可以获取任意一个类的内部信息,并且可以操作类、构造器、方法、成员变量等。 反射机制的应用场景 通过配置文件来读取实例化的对象 对框架类进行扩展 调试时查看对象的属性信息 反射机制的基本用法 获…

    Java 2023年5月26日
    00
  • windows下使用 intellij idea 编译 kafka 源码环境

    下面是使用 IntelliJ IDEA 编译 Kafka 源码的完整攻略: 1. 前置条件 安装 JDK 1.8 或以上版本 安装 Git 和 Maven 工具 下载 Kafka 源码 2. 导入源码 使用 IntelliJ IDEA 导入 Kafka 源码,可以通过如下步骤操作:- 打开 IntelliJ IDEA,点击 File -> New -&…

    Java 2023年5月20日
    00
  • 精通Java泛型的使用与原理

    精通Java泛型的使用与原理 什么是泛型? 泛型可以将数据类型作为数据参数传递,这个数据类型可以被用在类、接口和方法中。泛型的引入使得程序具有更好的类型安全性、代码复用性和可读性。 泛型的基本语法 泛型的基本语法为: class 类名<泛型参数,泛型参数,…>{ } interface 接口名<泛型参数,泛型参数,…>{ } …

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