SpringBoot集成数据库连接池druid

springboot 集成 druid 阿里的数据库连接池 1.配置pom <!-- druid 数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.12</version> <exclusions> <exclusion> 阅读详情

创建一个SpringBoot入门实例 - STS方式

SpringBoot2.0集成Mybatis

接以上两篇,在已集成mybatis基础上,集成druid

改造后得项目结构图如下

1. pom.xml添加druid jar包依赖

<!-- 配置数据源 阿里的 durid -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.0.31</version>
</dependency>

2.  application.properties 配置数据库

spring.datasource.name=orcl
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
spring.datasource.username=charge_0201
spring.datasource.password=charge3728
# 使用druid数据源
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
#log4j选项需要添加log4j jar包依赖
spring.datasource.filters=stat,wall,log4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
#连接池的配置信息
spring.datasource.maxActive=20
spring.datasource.initialSize=1
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
spring.datasource.minIdle=1
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=select 'x'
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.poolPreparedStatements=true
spring.datasource.maxOpenPreparedStatements=20

#设置mybatis的mapper和model扫描路径         
mybatis.mapperLocations=classpath:*.xml
mybatis.typeAliasesPackage=com.example.demo.model

3. com.example.demo.druidConfig 包下代码

(1)创建一个配置类DruidConfig.java 

package com.example.demo.druidConfig;

import javax.sql.DataSource;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import com.alibaba.druid.pool.DruidDataSource;
/**
  * 创建一个配置类
 * @author lee
 */
@Configuration
public class DruidConfig {
	@Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource druidDataSource() {
        DruidDataSource druidDataSource = new DruidDataSource();
        return druidDataSource;

    }
}

(2)配置监控拦截器DruidStatFilter.java

package com.example.demo.druidConfig;

import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;

import com.alibaba.druid.support.http.WebStatFilter;

@WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",
initParams={
        @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源
})
/**
  *  配置监控拦截器
 * @author lee
 */
public class DruidStatFilter extends WebStatFilter{
	
}

(3) 配置监控视图DruidStatViewServlet.java

 

package com.example.demo.druidConfig;

import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;

import com.alibaba.druid.support.http.StatViewServlet;

@WebServlet(urlPatterns = "/druid/*",
initParams={
        @WebInitParam(name="allow",value=""),// IP白名单 (没有配置或者为空,则允许所有访问)
        @WebInitParam(name="deny",value=""),// IP黑名单 (存在共同时,deny优先于allow)
        @WebInitParam(name="loginUsername",value="admin"),// 用户名
        @WebInitParam(name="loginPassword",value="admin"),// 密码
        @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能
})
/**
  *  配置监控视图
 * @author lee
 */
public class DruidStatViewServlet extends StatViewServlet {

}

(4)主类上添加注解 @ServletComponentScan

在SpringBootApplication上使用@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册,无需其他代码。

 

4. 启动项目

发现报错如下

Failed to bind properties under'spring.datasource' to javax.sql.DataSource

 

 

这是因为项目中缺少只需要引入log4j jar包,引入jar包依赖就能正常运行项目了

更新pom.xml文件

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

再次启动项目,启动成功。

访问 http://localhost:8080/druid/login.html 

输入admin/admin

成功进入监控页面

 

我们再次访问 http://localhost:8080/hello/login

试一下sql监控,发现无法查询数据库,后台报错如下

2019-04-01 10:46:27.513 ERROR 4900 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: Error attempting to get column 'id' from result set.  Cause: java.sql.SQLException: 流已被关闭
; uncategorized SQLException; SQL state [99999]; error code [17027]; 流已被关闭; nested exception is java.sql.SQLException: 流已被关闭] with root cause

java.sql.SQLException: 流已被关闭

这是因为我们得测试表tab_users 得id为long类型,改为number

delete from tab_users;
ALTER TABLE tab_users modify id number;
insert into tab_users (ID, USERNAME, PASSWORD)
values ('1', '张三', '123456');

insert into tab_users (ID, USERNAME, PASSWORD)
values ('2', '李四', 'lisi');

insert into tab_users (ID, USERNAME, PASSWORD)
values ('3', '王五', 'wangwu');

 

sql监控如下:

 

结束。 

SpringBoot与Druid数据库连接池集成教程 Druid是阿里巴巴开源的一个数据库连接池,它提供了一个高效的、可扩展的、具备强大监控功能的数据库连接池组件。 阅读详情

相关推荐

Druid简单高性能MySQL连接池

用阿里巴巴Druid实现的一个简单连接池,高性能,高并发。

DRUID连接池的实用 配置详解

DRUID介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况。 正式版本下载 maven中央仓库:http://central.maven.org/maven2/com/alibaba/druid/ 获取Druid的源码 Druid是一个开源项目,源码托管...

Sundy_sc的专栏 1591

ESD 防护深度解析:模型、等级、系统设计与防护策略

本文系统阐述了静电放电(ESD)防护的核心技术体系。首先对比分析了HBM(人体模型)和CDM(充电设备模型)两种基础ESD模型的物理特性、测试标准及分级要求,指出相同电压下CDM的破坏性是HBM的15-20倍。其次详细解析了IEC61000-4-2系统级ESD标准,包括接触/空气放电测试方法及判定等级。重点提出了系统级防护的三层架构:空间隔离(≥10mm间距)、电气隔离(地平面分割)和TVS管选型(响应时间<1ns),并对比了MOV、SCR等防护器件特性。针对不同应用场景(消费电子、工业控制等)给出了差异化

bother3000的博客 1884

数据库连接池

一、JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时,传统的模式基本是按以下步骤: 在主程序(如servlet、beans)中建立数据库连接 进行sql操作 断开数据库连接 这种模式开发,存在的问题: 普通的JDBC数据库连接使用 DriverManager 来获取,每次向数据库建立连接的时候都要将 Connection 加载到内存中,再验证用户名和密码(得花费0.05s~1s的时间)。需要数据库连接的时候,就向数据库要求一个,执行完成后再断开连接。这样的方式将会消耗大量的资源和时间

IT成长记 343

【记录】游戏体验报告怎么写(自我成长篇)

2019年3月更新: 这个倒是不用推翻,我个人虽然写的东西还是有一些偏差的,但是“表哥”说的倒是没毛病的,这篇主要是为了记录用,具体的干货也有,都在图片里,请自行提取 =====18年初原答案 作为一个游戏策划新人,游戏分析可能抓不到点子上,试着总结记录一下游戏体验报告分析的成长(因为水平不同,视野可能也不一样,也许之后几年回头看这些东西都是小儿科或者是错误的,所以只写出当下的想...

eat_human的博客 6万+

PostgreSQL向量数据插件--pgvector安装(附PostgreSQL安装)

本文为本人在安装pgvector中踩过的坑,已找到解决方法,现向大家分享。

m0_62627802的博客 2万+

druid连接池各属性说明

druid连接池各属性说明 1.1 maxActive :连接池支持的最大连接数。一般取值20就可以了,一般把maxActive设置成可能的并发量就行了设 0 为没有限制。 1.2 maxIdle : 连接池中最多可空闲maxIdle个连接 ,这里取值为20,表示即使没有数据库连接时依然可以保持20空闲的连接,而不被清除,随时处于待命状态。设 0 为没有限制。已经不再使用,配置了也没效果 1...

Lyuuku爱吃苹果 1万+

无感无刷电机控制进阶:反电动势过零检测的5种实现方案对比

本文深入探讨无感无刷电机控制中反电动势过零检测的5种实现方案,包括电阻分压虚拟中性点法、专用BEMF检测IC方案、基于ADC采样的数字锁相环、无传感器观测器技术及混合方案创新实践。通过对比分析各方案的优劣及适用场景,为电机控制工程师提供实用的技术选型指南,助力提升系统性能与成本效益。

weixin_28691741的博客 845

Spring boot学习(四)Spring boot整合Druid

前言 在上一篇博客中我们介绍了Spring boot配置Mybatis,但是并没有配置连接池,这在实际开发过程中肯定是不切实际的,多次的数据库连接会给程序和数据库都带来没必要的负担,这一篇博客我将介绍java中目前最好,最流行的数据库连接池---Druid。 文章首发于个人博客:【www.xiongfrblog.cn】 Druid介绍 Druid是阿里巴巴的一个开源项目,号称为监控而生的数据库连接...

weixin_33957648的博客 274

generate for与always内for:Verilog循环的静态生成与动态执行之辨

本文深入解析Verilog中generate for与always内部for循环的核心差异。generate for使用genvar变量在编译时静态生成硬件结构,适用于模块实例化;always内部for使用整型变量在运行时动态执行,综合为并行逻辑。理解这两种循环的适用场景和综合结果对提升数字电路设计质量至关重要。

yog99的博客 1087

AI大模型探索之路-应用篇11:AI大模型应用智能评估(Ragas)

随着人工智能技术的飞速发展,AI大模型(LLM)已经成为了推动技术创新和应用的关键因素。这些大模型在语言理解、图像识别、自然语言生成等领域展现出了惊人的能力。然而,随着模型规模的增大,它们对计算资源的消耗、环境适应性、模型稳定性、安全性和可解释性等方面也提出了新的挑战。因此,对AI大模型进行智能评估变得至关重要,以确保它们在实际应用中的稳定性、可靠性和有效性。本文将详细介绍Ragas框架,一个专为AI大模型设计的智能评估工具。

寻道AI,探索AI无限可能! 5546

Druid连接池的简单使用

感谢原文作者:chenhongyong 原文链接:https://www.cnblogs.com/chy18883701161/p/12594889.html 更多请查阅阿里官方API文档:https://github.com/alibaba/druid/wiki Druid简介 Druid是阿里开源的数据库连接池,作为后起之秀,性能比dbcp、c3p0更高,使用也越来越广泛。 当然Druid不仅仅是一个连接池,还有很多其他的功能。 druid的优点 高性能。性能比dbcp、c3p0高很多。 只要是j.

Jason的学习笔记 759

JumpServer未授权访问漏洞 CVE-2023-42442

JumpServer 是全球首款完全开源的堡垒机, 使用GNU GPL v2.0 开源协议, 是符合4A 的专业运维审计系统。 JumpServer 使用Python / Django 进行开发。2021年1月15日,阿里云应急响应中心监控到开源堡垒机JumpServer发布更新,修复了一处远程命令执行漏洞。由于 JumpServer 某些接口未做授权限制,攻击者可构造恶意请求获取到日志文件获取敏感信息,或者执行相关API操作控制其中所有机器。

holyxp的博客 1424

【八】spring boot集成数据库连接池druid

最近在进行程序优化的过程中发现程序瓶颈在数据库连接这块,于是开始研究怎么对数据库连接池参数进行调优,在这个过程中发现很多人使用druid很不规范,经常会出现导入的包和配置参数不对应的情况,这些都是因为对集成druid一知半解导致的,因此决心写一篇关于spring boot集成数据库连接池druid的博客来彻底理解清楚其中的原理。二、springboot集成druid-spring-boot-starter。可见starter包依赖,简单了许多,这些归功于spring boot的约定大于配置的特性。

作者:大头兵(kit) 2399

【深度学习|地学应用】MODIS AOD产品和HYSPLIT模型的局限性和不确定性?

【深度学习|地学应用】MODIS AOD产品和HYSPLIT模型的局限性和不确定性?

985小水博的摸鱼日常 463

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Spring Boot——集成Druid数据库连接池

文章目录Spring Boot——集成Druid数据源1、什么是Druid2、配置Druid数据源3、配置Druid数据源监控4、配置filter 过滤器 Spring Boot——集成Druid数据源 1、什么是Druid Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池。 Druid 是阿里巴巴开源平台上一个数据库连接池实现,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver(代理驱动程序),一系列内置的JDBC组件库,一个SQL Pars

万里顾一程的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

八.springboot集成mybatis+druid数据库连接池

集成Druid 是一个高性能的数据库连接池,结合了 C3P0 和 DBCP 等连接池的优点,能够高效地管理数据库连接Druid 已经在阿里巴巴的多个生产环境中部署,经过了大规模的严苛考验,具有较高的稳定性和可靠性MyBatis 提供了灵活的 SQL 映射和定制化功能,结合 Spring Boot 的自动配置机制,可以快速搭建高效的数据访问层。

qq_32430463的博客 1650

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

spring boot 集成Druid数据库连接池

一、引入依赖 在pom文件中加入如下依赖: <!--集成mysql数据库--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> ...

贪吃小明的博客 281

SpringBoot学习笔记之集成Druid数据库连接池

在软件系统中都会使用到数据库,是开发中大型系统不可缺少的。但如果对数据库资源没有很好地管理,往往会直接导致系统的稳定。随着系统流量、用户的增加,会逐步显露。使用数据库连接池可以更好、更高效的管理数据库连接资源,我们可以直接使用第三方服务,不必自己思索数据库连接的管理。等。优先推荐Druid。它作为国货,更加符合国人的思维,功能丰富,还经历了千锤百炼。目前只是 SpringBoot 集成了 Druid 连接池,并可以进入监控页面进行查看相关监控数据。

蜗牛老师,专注编程领域 7124

springboot集成druid连接池(数据库密码加密)

1.springboot默认连接池 习惯使用springboot的小伙伴通过开始学习springboot链接数据库时,都会尝试着官方文档来 学习,所以springboot默认支持的数据库连接池c3p0和 dhcp,大家应该都很熟悉了吧,只需要在.propeties文件中配置下数据库连接字符串即可,默认采用c3p0链接池进行连接数据库,但是今天我着重记录的并非官方默认支持的链接池,而是集成性...

ikownyou的博客 3万+

SpringBoot中集成数据库连接池Druid

1、引入Pom依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1....

m0_37732829的博客 498

SpringBoot集成Druid数据库连接池

有两种方式可以集成Druid。 第一种:druid-spring-boot-starter模式,官方文档:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter,用maven引入相关依赖之后,直接在yml或者properties文件里就可以配置,springboot默认是没有引入这个starte...

fengye1992的专栏 3374

Spring Boot集成Druid数据库连接池

1.pom.xml添加依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.29</...

aipang8854的博客 101

Springboot集成Druid连接池并实现数据库密码加密

Druid介绍 Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。 同时Druid不仅仅是一个数据库连接池,它包括三个部分: 1.基于Filter-Chain模式的插件体系。 2.DruidDataSource 高效可管理的数据库连接池。 3.SQLParser D

老徐的博客只有干货 8404

spring boot 集成druid数据库连接池,并打印sql

spring boot 集成druid数据库连接池,并打印sql pom文件配置 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-s...

qq_29086535的博客 8688

【springboot】Spring Boot集成Druid数据库连接池

1. 前言 Druid数据库连接池由阿里巴巴开源,号称是java语言中最好的数据库连接池,是为监控而生的。Druid的官方地址是:https://github.com/alibaba/druid 通过本文,我们可以看到 Spring Boot 如何配置数据源 Spring Boot 如何集成Druid数据库连接池 如何打开并访问Druid数据库连接池的监控功能 Spring Boot ...

不二的博客 558
上一篇: SpringBoot2.0集成Mybatis
下一篇: Spring Cloud Netflix之Euraka Server注册中心
coderLee0607
博客等级 码龄14年 88粉丝 75原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值