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

yizhihongxing

如您所说,本人将为您提供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日

相关文章

  • Kotlin基础教程之Run,标签Label,函数Function-Type

    Kotlin基础教程之Run run 函数是Kotlin中的一个高阶函数,主要用于在一个对象上调用一个代码块,并且该对象作为 lambda 表达式的上下文对象。该函数的返回值是代码块中最后一个表达式的值,或者一些额外指定的结果(通过 lambda 返回)。 使用 run 函数的语法如下: val result = someObject.run{ //在这里使…

    Java 2023年5月26日
    00
  • Jsp+Servlet实现文件上传下载 删除上传文件(三)

    这篇攻略是介绍如何使用 JSP 和 Servlet 来实现文件上传下载以及删除上传文件。其中包含以下内容: 上传文件处理(上传文件存储,上传文件名称处理) 下载文件处理(下载文件存储) 删除文件处理 除此之外,还会用到一些库和工具,如 commons-fileupload、commons-io、bootstrap。 上传文件处理 上传文件存储 在上传文件之前…

    Java 2023年6月15日
    00
  • javascript面向对象程序设计实践常用知识点总结

    JavaScript面向对象程序设计实践常用知识点总结 作为一门现代前端开发的核心语言,JavaScript 语言已经成为了面向对象编程的主流语言之一。本文总结了一些 JavaScript 面向对象编程常用的知识点,以帮助读者更好地理解、掌握和应用 JavaScript 编程。下面,我们将分为以下几个方面进行讲解。 1. 基本概念 1.1 类和对象 Java…

    Java 2023年5月26日
    00
  • Java二叉树的四种遍历方式详解

    Java二叉树的四种遍历方式详解 二叉树是一种常见的数据结构,在Java中也有很多实现方式。对二叉树进行遍历是必不可少的操作,Java提供了四种不同的遍历方式,这篇文章会详细讲解这四种方法,以及对应的代码实现和示例说明。 什么是二叉树 二叉树是一种树结构,其每个结点最多只有两个子节点。其中一个为左子节点,一个为右子节点。 每个结点都由三部分组成:一个数据域、…

    Java 2023年5月19日
    00
  • java的Hibernate框架报错“QueryException”的原因和解决方法

    当使用Hibernate框架时,可能会遇到“QueryException”错误。这个错误通常是由于以下原因之一引起的: HQL语句错误:如果您的HQL语句存在问题,则可能会出现此错误。在这种情况下,需要检查您的HQL语句并确保它们正确。 参数绑定错误:如果您的参数绑定存在问题,则可能会出现此错误。在这种情况下,需要检查您的参数绑定并确保它们正确。 数据库表结…

    Java 2023年5月4日
    00
  • Java获取指定字符串出现次数的方法

    Java获取指定字符串出现次数的方法 基本思路 要想获取指定字符串出现的次数,基本思路是使用String类中的方法来处理字符串,并利用循环的方式对整个字符串进行遍历,统计指定字符串出现的次数。 示例一 以下是一个基本的Java代码段,可以用于计算一个字符串中指定的子串出现的次数: public static int countOccurrences(Stri…

    Java 2023年5月27日
    00
  • java中的数组初始化赋初值方式

    下面是 “Java中的数组初始化赋初值方式” 的详细攻略: 1. 静态初始化 1.1 基本数据类型静态初始化 在Java中,数组静态初始化是指在定义数组时同时为数组元素赋初值。基础数据类型数组的静态初始化可以采用以下方式: // 声明一个整型数组,长度为3,元素分别为1, 2, 3 int[] arr = new int[]{1, 2, 3}; // 声明一…

    Java 2023年5月26日
    00
  • springboot+jwt+springSecurity微信小程序授权登录问题

    背景介绍 在微信小程序中实现授权登录是一个常见的需求,一般情况下我们可以通过使用微信提供的API实现相关功能。然而,在某些需要更加丰富的业务场景下,如需要融合第三方登录、访问权限控制以及身份验证等功能时,就需要我们使用 SpringBoot+JWT+Spring Security 来实现这些需求。 Spring Security 采用基于过滤器链的结构,通过…

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