Druid说明及配置版权声明

原创
小哥 3年前 (2022-11-11) 阅读数 48 #大杂烩
  1. Druid是什么?

Druid是Java该语言中最好的数据库连接池。Druid可以提供强大的监控和扩展功能。

  1. 下载位置druid

  1. 怎么获取Druid的源码

Druid是一个开源项目,源代码托管在中。github在上,源代码仓库地址为 https://github.com/alibaba/druid 。同时,每次Druid当发布正式版本和快照时,源代码将被打包。您可以从上面的下载地址找到相关版本的源代码。

  1. 怎么配置maven

Druid 0.1.18 发布了更高版本maven中央仓库,所以你只需要在项目中。pom.xml中加上dependency没关系。例如:

    
        com.alibaba
        druid
        ${druid-version}
    

也可以选择 Maven仓库查找公共仓库地址: http://www.mvnrepository.com/artifact/com.alibaba/druid

  1. 怎么打开Druid监控统计功能

Druid监控统计功能是通过filter-chain扩展实现,如果您想打开监视统计信息,请配置StatFilter,请参见此处: https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter

  1. 怎样使用Druid内置监控页面

内置监控页面是Servlet,具体配置请参见此处: https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AE

  1. 内置监控Web和Spring如何配置关联监视?

  1. 如何配置防御SQL注入攻击

Druid提供了WallFilter,它基于SQL语义分析实现防御SQL注射攻击。有关具体配置,请参见此处: https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE-wallfilter

  1. Druid是否有参考配置

不同的业务场景有不同的要求。您可以使用我们的参考配置,但建议您仔细阅读相关文档,并在了解清楚后进行自定义配置。 https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_DruidDataSource%E5%8F%82%E8%80%83%E9%85%8D%E7%BD%AE

  1. 我想记录JDBC执行的SQL,如何配置

Druid提供了Log4jFilter、CommonsLogFilter和Slf4jFilter,具体配置见此处 https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_LogFilter

  1. 我的程序可能存在连接泄漏。我能做什么?

Druid提供了多种监测连接泄漏的手段,请参见此处: https://github.com/alibaba/druid/wiki/%E8%BF%9E%E6%8E%A5%E6%B3%84%E6%BC%8F%E7%9B%91%E6%B5%8B

  1. 在Druid中使用PSCache内存使用过多是否存在问题?

连接Oracle数据库,打开PSCache在其他数据库连接池中,Druid是解决此问题的唯一连接池。有关详细信息,请参见此处: https://github.com/alibaba/druid/wiki/Oracle%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%8BPreparedStatementCache%E5%86%85%E5%AD%98%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88

  1. 是否与其他数据库连接池进行了比较?

  1. 从其他连接池迁移时,我应该注意什么?

  1. Druid有没有类似的Jboss DataSource中的ExceptionSorter

ExceptionSorter是JBoss DataSource优异的特性,Druid它也具有相同的功能ExceptionSorter,但如果没有手动配置,自动识别将生效。有关详细信息,请参见此处: https://github.com/alibaba/druid/wiki/ExceptionSorter_cn

  1. Druid中的maxIdle为什么它没用?

maxIdle是Druid为了方便DBCP随着用户迁移的增加,maxIdle这是一个令人困惑的概念。连接池应该只有maxPoolSize和minPoolSize,druid只保留了maxActive和minIdle,分别相等maxPoolSize和minPoolSize。

  1. 我的应用程序已配置。JNDI可以使用数据源。DruidDataSource么?

DruidDataSource支持JNDI配置,请参见此处: https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_JNDI_Tomcat
该类的具体实现如下:com.alibaba.druid.pool.DruidDataSourceFactory,您可以阅读代码以加深理解。

  1. 我的应用程序已被使用。DBCP,写在代码中,如何替换它Druid?

可以的,Druid在中提供完全平滑的迁移DBCP的办法。

这种用法使得它可以在一些不是自己开发的应用程序中使用。Druid,例如在sonar中部署druid,sonar是一种用途jruby开发的web应用程序,写死DBCP,只能用此方法替换。

  1. 我想尝试快照版本。我怎么得到它?

直接获取快照版本的地址为: http://code.alibabatech.com/mvn/snapshots/com/alibaba/druid/ ,使用快照版本建议加入我们。QQ群 92748305,遇到问题直接反馈给我们。

  1. 有一些SQL执行速度慢,我想注销,如何设置?

在StatFilter配置缓慢SQL执行日志记录,查看此处 https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatFilter

  1. 如果我想加密数据库密码怎么办?

运维和DBA两者都不想将密码以明文形式直接写入配置文件,Druid提供数据库的秘密加密功能。有关详细信息,请参见此处: https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter

  1. 如何参与Druid的开发

Druid是通行证github开源项目,github让您轻松参与的功能。以下是详细信息 https://github.com/alibaba/druid/wiki/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E

  1. Druid发布周期是什么?

Druid是一个积极的项目,长期维护。每个月都有一个发布窗口,除非你遇到重大问题bug以及非常紧急的需求,否则他们最多每月会被释放一次。如果没有足够的要求,则不会使用发布窗口。

  1. 如果DruidDataSource在init它失败了,不再使用。你需要吗close

是,如果DruidDataSource不再使用,必须调用。close释放资源,包括关闭Create和Destory线程。

  1. DruidDataSource支持哪些数据库?

理论上,它支持所有jdbc驱动数据库。实际测试过

数据库

支持状态

mysql

支持,大规模使用

oracle

支持,大规模使用

sqlserver

支持

postgres

支持

db2

支持

h2

支持

derby

支持

sqlite

支持

sybase

支持

  1. Oracle下jdbc executeBatch更新时,行数计算错误

使用jdbc的executeBatch 方法,如果数据库为。oracle,返回值是数据是否成功更新。-2,而不是真正sql更新到的记录数,即Oracle JDBC Driver的问题,Druid无特殊处理。

  1. Druid如何自动根据。URL自动识别DriverClass的

Druid是根据url要标识的前缀DriverClass这使得配置更加方便和简洁。

前缀

DriverCLass

描述信息

jdbc:odps

com.aliyun.odps.jdbc.OdpsDriver

jdbc:derby

org.apache.derby.jdbc.EmbeddedDriver

jdbc:mysql

com.mysql.jdbc.Driver

jdbc:oracle

oracle.jdbc.driver.OracleDriver

jdbc:microsoft

com.microsoft.jdbc.sqlserver.SQLServerDriver

jdbc:sybase:Tds

com.sybase.jdbc2.jdbc.SybDriver

jdbc:jtds

net.sourceforge.jtds.jdbc.Driver

jdbc:postgresql

org.postgresql.Driver

jdbc:fake

com.alibaba.druid.mock.MockDriver

jdbc:mock

com.alibaba.druid.mock.MockDriver

jdbc:hsqldb

org.hsqldb.jdbcDriver

jdbc:db2

COM.ibm.db2.jdbc.app.DB2Driver

DB2的JDBC Driver非常令人困惑,这场比赛并不一定正确。

jdbc:sqlite

org.sqlite.JDBC

jdbc:ingres

com.ingres.jdbc.IngresDriver

jdbc:h2

org.h2.Driver

jdbc:mckoi

com.mckoi.JDBCDriver

jdbc:cloudscape

COM.cloudscape.core.JDBCDriver

jdbc:informix-sqli

com.informix.jdbc.IfxDriver

jdbc:timesten

com.timesten.jdbc.TimesTenDriver

jdbc:as400

com.ibm.as400.access.AS400JDBCDriver

jdbc:sapdb

com.sap.dbtech.jdbc.DriverSapDB

jdbc:JSQLConnect

com.jnetdirect.jsql.JSQLDriver

jdbc:JTurbo

com.newatlanta.jturbo.driver.Driver

jdbc:firebirdsql

org.firebirdsql.jdbc.FBDriver

jdbc:interbase

interbase.interclient.Driver

jdbc:pointbase

com.pointbase.jdbc.jdbcUniversalDriver

jdbc:edbc

ca.edbc.jdbc.EdbcDriver

jdbc:mimer:multi1

com.mimer.jdbc.Driver

  1. 如何保存监控记录

https://github.com/alibaba/druid/wiki/%E6%80%8E%E4%B9%88%E4%BF%9D%E5%AD%98Druid%E7%9A%84%E7%9B%91%E6%8E%A7%E8%AE%B0%E5%BD%95

  1. 我想Log输出SQL执行信息如何?

https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_LogFilter

  1. 如何配置Druid内置的log实现

https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AEdruid%E5%86%85%E7%BD%AE%E7%9A%84log%E5%AE%9E%E7%8E%B0

附:示例项目:

https://github.com/windwant/spring-dubbo-service.git

https://github.com/windwant/spring-boot-service.git

https://github.com/windwant/spring-cloud-service.git

分类: Java

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门