Druid快速入门

Druid通俗易懂的快速入门 Druid是什么 通俗点来说它是个不但继承了tomcat、dbcp2数据库连接池的优点,还支持扩展插件的数据库连接池, 其中最常用的三个插件:start、wall、log4j带给druid强大的后台监控、防御sql注入和日志等功能。 再简单点来说,它会有一个自己的后台监控页面,像这样: 简单例子 依赖 <!--Druid--> <dependency> <groupId>com.alibaba</groupId> <artifact 阅读详情
简介

DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池

Druid是一个JDBC组件,它包括三个部分

  • 基于Filter-Chain模式的插件体系
  • DruidDataSource 高效可管理的数据库连接池
  • SQLParser
功能

1.替换DBCP和C3P0。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池

2.可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助

3.数据库密码加密。直接把数据库密码写在配置文件中,这是不好的行为,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback

4.SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况

5.扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter机制,很方便编写JDBC层的扩展插件

使用配置
  • pom文件依赖
<dependency>    
    <groupId>com.alibaba</groupId>    
    <artifactId>druid</artifactId>    
    <version>1.1.2</version>
</dependency>
  • druid.properties
jdbc_driver=com.mysql.jdbc.Driver 
jdbc_url=jdbc:mysql://127.0.0.1:3306/mysqluseUnicode=true&characterEncoding=utf-8
jdbc_username=root
jdbc_password=123456
  • dataSource
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">    
<!--基础属性-->    
<property name="driverClassName" value="${jdbc_driver}"/>
<property name="url" value="${jdbc_url}"/>   
<property name="username" value="${jdbc_username}"/>    
<property name="password" value="${jdbc_password}"/>    
<!--初始化大小、最小、最大-->  
<property name="initialSize" value="1"/>    
<property name="minIdle" value="1"/>   
<property name="maxActive" value="20"/>   
<!--配置获取连接等待超时的时间 -->   
<property name="maxWait" value="60000"/>    
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->   
<property name="timeBetweenEvictionRunsMillis" value="60000"/>    
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->    
<property name="minEvictableIdleTimeMillis" 
value="3000000"/>    
<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->   
<property name="poolPreparedStatements" value="true" />    
<property name="maxPoolPreparedStatementPerConnectionSize" value="20" />    
<!-- 配置监控统计拦截的filters -->   
<property name="filters" value="stat" /></bean>
 <!-- 配置监控统计日志的输出间隔,单位毫秒,每次输出所有统计数据会重置,酌情开启 -->
 <property name="timeBetweenLogStatsMillis" value="120000" />
 <property name="proxyFilters">   
     <list>     
         <ref bean="log-filter"/>  
    </list>
 </property>

常用DriverClass

数据库URL
mysqlcom.mysql.jdbc.Driver
oracleoracle.jdbc.driver.OracleDriver

如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。分库分表较多的数据库,建议配置为false

  • 监控的配置
    在项目的web.xml加上以下代码
    1.资源进行拦截
<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>
    <!--黑白名单-->
     <init-param>
        <param-name>allow</param-name>
        <param-value>127.0.0.1</param-value>
    </init-param>
    <init-param>
        <param-name>deny</param-name>
        <param-value>128.242.127.4</param-value>
    </init-param>
</filter>
<filter-mapping>    
    <filter-name>DruidWebStatFilter</filter-name>    
    <url-pattern>/*</url-pattern>
</filter-mapping>

2.使用druid的数据监控功能需要在web.xml里面配置servlet

<servlet>    
    <servlet-name>DruidStatView</servlet-name>    
    <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
    <init-param>
        <!-- 允许清空统计数据 -->
          <param-name>resetEnable</param-name>
          <param-value>true</param-value>
     </init-param>
</servlet>
<servlet-mapping>   
    <servlet-name>DruidStatView</servlet-name>    
    <url-pattern>/druid/*</url-pattern>
</servlet-mapping>

StatViewServlet的用途主要在于

  • 提供监控信息展示的html页面
  • 提供监控信息的JSON API
  • 监控日志配置
    druid是可以配置输出日志的。我们通过配置了这个,可以在控制台里面,看到我们程序里面编写的sql语句,还可以看到可执行的sql
<bean id="log-filter" class="com.alibaba.druid.filter.logging.Log4jFilter">    
<!--日志打印可执行的sql  -->    
<property name="statementExecutableSqlLogEnable" value="true" />   
<property name="dataSourceLogEnabled" value="true" />    
<property name="connectionLogEnabled" value="true" />    
<property name="statementLogEnabled" value="true" />    
<property name="resultSetLogEnabled" value="true" /></bean>
  • 测试
    启动项目,输入 http://localhost:port/druid/
    在这里插入图片描述
SQLParser

解析 sql 语句的模块

druid优势
  • 强大的监控特性,通过Druid提供的监控功能,可以清楚知道连接池和SQL的工作情况

  • 方便扩展。Druid提供了Filter-Chain模式的扩展API,可以自己编写Filter拦截JDBC中的任何方法,可以在上面做任何事情,比如说性能监控、SQL审计、用户名密码加密、日志等等

【Spring Boot 快速入门】Spring Boot集成Druid数据监控 前言   Druid Spring Boot Starter 用于帮助你在Spring Boot项目中轻松集成Druid数据库连接池和监控。本文将结合Spring Boot集成Druid,进行数据源监控。 初识Druid   Druid是阿里开源的一个JDBC应用组件, 其包括三部分:DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系; DruidDataSource 高效可管理的数据库连接池;SQLParser SQL语法分析;Druid是Java语言中最好 阅读详情

相关推荐

LS-Dyna模态分析实战:从模型构建到结果解读的全流程指南

本文提供了一份详尽的LS-Dyna模态分析实战指南。文章系统讲解了如何利用LS-Dyna内置的隐式求解器进行特征值求解,从模型构建、几何清理、材料与连接设置,到核心的边界条件与隐式求解控制(如*CONTROL_IMPLICIT_EIGENVALUE),最后完成计算并解读频率与振型结果。旨在帮助工程师在熟悉的环境中高效完成结构振动特性分析,为后续动态响应分析奠定基础。

info6的博客 262

Druid:入门

Druid:入门

程序员无羡的博客 305

pytorchDataLoader中调整数据长度不一致问题(lstm等)

数据长度不一致 用pytorch做rnn的时候,如果输入数据不一样长,可以用两种方式解决。 一种是自定义collate方法, #自定义collate_fn dataloader.DataLoader(dataset,4,True,collate_fn=my_collate) 然后里面写数据和标签载入方式即可 def my_collate(batch): data = [item[0] for item in batch] target = [item[1] for item in batc

weixin_48174100的博客 7770

druid之入门

转载:http://druid.io/docs/0.13.0-incubating/design/index.html 什么是Druid? Druid是一个数据存储,专为大型数据集上的高性能切片和骰子分析(“OLAP”风格)而设计。Druid最常用作为GUI分析应用程序提供动力的数据存储,或者用作需要快速聚合的高度并发API的后端。Druid的常见应用领域包括: 点击流分析 网络流量分...

xqhys的博客 631

UE5与Cesium for Unreal结合:打造高效离线地图解决方案

本文详细介绍了如何利用UE5与Cesium for Unreal结合打造高效离线地图解决方案,特别适用于数字孪生、军事仿真等网络不稳定场景。通过优化配置、数据处理和性能调优,实现TB级地形数据的流畅渲染,并结合实战案例展示了在油田巡检等复杂环境中的应用效果。

weixin_29007135的博客 493

告别手动连接!一键搞定Mumu模拟器与Android Studio的ADB配置

本文详细介绍了如何通过编写自动化脚本,一键完成Mumu模拟器与Android Studio的ADB连接配置。告别繁琐的手动命令输入,该脚本能智能检查环境、判断连接状态并自动处理端口转发,显著提升Android开发者的调试与测试效率。

yog99的博客 495

oracle查询大于2条以上数据_Springboot2.*整合Druid1.2.*

-编辑器:Intellij IDEA- 构建工具:Gradle6.5- 版本管理:GitHub- 个人GitHub地址:https://github.com/liuc8023/zhifou - 项目Clone地址:https://github.com/liuc8023/zhifou.gitDruid是什么Apache Druid是一个实时分析型数据库,旨在对大型数据集进行快速的查询分析...

weixin_39745933的博客 787

数据分片的三种方式:哈希、一致性哈希、按照数据范围分片

数据分片就是按照一定的规则,将数据集划分成相互独立、正交的数据子集,然后将数据子集分布到不同的节点上。通过设计合理的数据分片规则,可将系统中的数据分布在不同的物理数据库中,达到提升应用系统数据处理速度的目的。三种常用的数据分片方式:1. 哈希分片2. 一致性哈希分片(Consistent Hash)3. 按照数据范围分片(Range Based)数据分片的应用场景:1. 数据库扩展2. 分布式缓存对集群部署多个缓存节点,提高缓存的处理能力。

wjianwei666的专栏 1133

Druid 数据库连接池快速入门及实践指南

Druid 数据库连接池快速入门及实践指南 【免费下载链接】druid 阿里云计算平台DataWorks(https://help.aliyun.com/document_detail/137663.html) 团队出品,为监控而生的数据库连接池 ...

gitblog_00516的博客 768

手把手教你学simulink实例--基于Simulink的电动汽车动力总成控制策略验证与标定仿真平台

电动汽车的动力总成(Powertrain)是车辆的核心系统,包括动力电池、电机控制器、逆变器和驱动电机等关键部件。动力总成的控制策略直接影响车辆的动力性能、能耗效率和驾驶体验。为了验证和优化这些控制策略,基于MATLAB/Simulink的仿真平台成为一种高效且经济的解决方案。本项目旨在构建一个完整的基于Simulink的电动汽车动力总成控制策略验证与标定仿真平台,涵盖控制策略建模、性能评估以及参数标定等功能模块,并通过仿真验证系统的有效性。

MHD0815的博客 298

STM32嵌入式标准化封装五层架构设计与工程实践

在嵌入式系统开发中,代码封装是保障可维护性、可复用性与可靠性的核心工程能力。其本质是通过分层抽象(硬件抽象层→设备驱动层→应用逻辑层)解耦硬件依赖与业务逻辑,实现跨芯片移植、多任务安全及确定性实时响应。关键技术包括HAL库重构以消除硬编码初始化、驱动层提供同步/异步/事件驱动三类UART接口、中断优先级矩阵管理确保响应确定性、双阶段时钟配置兼顾启动鲁棒性与运行能效,以及面向Modbus等工业协议的语义化API封装。这些实践直击STM32项目中引脚变更难、HAL裸调风险高、中断处理不安全、时钟配置僵化等典型痛

weixin_35019679的博客 67

druid -mysql_Druid官方文档翻译:Druid快速入门

Druid QuickstartIn this quickstart, we will download Druid and set it up on a single machine. The cluster will be ready to load data after completing this initial setup.Before beginning the quickstart...

weixin_42363600的博客 453

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

高性能实时分析数据库:Apache Druid 快速入门指南

Druid 是一款高性能实时分析数据库,主要价值在于缩短洞察和行动的时间。

船长Q的博客 1510

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

快速学习-Druid的入门

第5章 Druid的入门 5.1 在线加载样本数据 打开imply 开始连接到实例Wikipedia数据集 加载样本数据。Wikipedia示例使用Http数据加载器从URI路径读取数据,格式为json。可以通过点击采样并继续,对文件前几行的数据进行采样,以确保它是可解析的数据。 配置汇总 配置时间戳和分区 配置要加载的列。 确认并开始摄取! 一旦加载器指示数据已被索引,您就可以继...

逍遥云恋 683

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Druid连接池快速入门指南

本文介绍了数据库连接池的概念及Druid连接池的使用方法。连接池通过预先创建和复用数据库连接,解决了传统JDBC频繁创建/关闭连接的性能问题。文章详细讲解了Druid的配置步骤,包括导入jar包、创建properties配置文件、加载配置并获取连接等关键环节,特别强调了路径问题的解决方法。通过对比传统JDBC,展示了连接池在性能、资源消耗等方面的优势,并提供了查询和插入数据的完整示例。最后提醒注意连接关闭和合理配置连接数的重要性,指出连接池是实际项目中提升数据库访问效率的必备技术。

2401_89765726的博客 972

springboot druid监控页面_SpringBoot操作数据库快速入门

SpringData简介对于数据访问层,无论是SQL还是NoSQL,在SpringBoot 底层都是采用SpringData来进行封装的。 官网地址:https://spring.io/projects/spring-data使用IDEA构建项目时,我们可以勾选SpringData相关依赖。如上图界面所示,Spring提供了很多工具供我们使用,它封装了大量的模板,在Template Engines...

weixin_39712724的博客 264

Spring Boot集成Druid快速入门Demo

1.什么是Druid?Druid连接池是阿里巴巴开源的数据库连接池项目。Druid连接池为监控而生,内置强大的监控功能,监控特性不影响性能。功能强大,能防SQL注入,内置Loging能诊断Hack应用行为。2.mysql环境搭建第一个mysql数据库dockerrun--namedocker-mysql-5.7-eMYSQL_ROOT_PASSWORD=123456-p3306:33...

HBLOG 751

【JAVA - Druid】Druid数据库连接池 -- 快速入门使用

1. 导入相关的 jar 包 * mysql-connector-java.jar包(此包用于idea连接数据库用) * Druid.jar(对数据库进行操作(增删查改,用的是mysql) * 其他包用于数据操作使用 2. 进行相关的数据库配置 ,编写.xml文件 (放在java工程src目录下) // 告诉java去com.mysql.jdbc路径下将...

乐嘉工作室 4075

【Druid】(五)通过 Imply 快速入门

在 Apache Druid 部署和配置(单机版 / Docker 容器版 / Kubernetes 集群版)中,我们完成了单机版的配置,接下来基于 Imply 我们完成今天的入门Demo。

云祁QI 888

Druid入门(1)—— 快速入门实时分析利器-Druid_0.17

一、安装准备 本次安装的版本是截止2020.1.30最新的版本0.17.0 软件要求 需要Java 8(8u92 )以上的版本,否则会有问题 Linux,Mac OS X或其他类似Unix的操作系统(不支持Windows) 硬件要求 Druid包括一组参考配置和用于单机部署的启动脚本: nano-quickstart micro-quickstart small medium lar...

大数据流动 1324

最完整Apache Druid入门指南:从本地部署到Docker快速启动

你是否还在为实时数据分析平台的复杂部署而烦恼?是否想快速体验高性能时序数据库的魅力?本文将带你从0到1掌握Apache Druid(德鲁伊)的两种部署方式,只需15分钟即可完成从环境准备到数据查询的全流程,让你轻松迈入实时分析的大门。 读完本文你将获得: - 本地单节点部署Druid集群的详细步骤 - Docker容器化部署的极简方案 - 首次数据 ingestion 与SQL查询实战 - We...

gitblog_00858的博客 1110

MyBatisPlus快速入门——MyBatisPlus集成Druid配置应用

这里我重点讲一下如何使用mybatisplus与druid连接池进行整合,关于springboot整合mybatisplus可参考SpringBoot整合MyBatisPlus 要引入Druid数据库连接池,其实只需要在application.yml中配置相关的druid的数据即可 server: port: 8081 spring: datasource: driver-class-name: com.mysql.jdbc.Driver username: root p

鹿谷門実的博客 1003

Apache Druid实战指南:从快速入门到生产环境部署全流程

你是否还在为实时数据分析平台的搭建而烦恼?是否面对海量数据不知如何实现亚秒级查询响应?本文将带你从零开始,完成Apache Druid(分布式实时分析数据库)的环境搭建、数据接入、集群部署全流程,让你在1小时内具备处理千万级数据的实时分析能力。 ## 1. 环境准备与快速启动 ### 1.1 系统要求与依赖安装 Apache Druid需要Java 8+环境和ZooKeeper协调服务。生产...

gitblog_00343的博客 1078
上一篇: 最简单的git使用教程
下一篇: WebService最详细教程
helloloser
博客等级 码龄10年 6粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值