druid 初始化连接数不够是 要设置哪些参数创建数据库连接

druid 初始化连接数不够是 要设置哪些参数创建数据库连接,第1张

如果连接数大于最大数目,后面的连线会失败,无法连接。

不管何种数据库,一般都有定义最大连接数,否则若不限制连接数,会使数据库处理不过来而崩溃。

设置连接数的好处,就是保证已连接用户的正常使用。

当连接数大于最大数目时,后面的连接会无法连接,但已连接上的用户使用不受影响。

只有之前的用户断开连接,后面的用户才可以连接上。相当于在总数不变的情况下,最多只能保持收支平衡,不可以收大于支。

druid监控地址: >

执行了错误的sql。

问题就出在druid连接池上,连接池在执行完了某一条错误的sql以后,报错信息会被保存在执行sql的线程中,当下一条拿到这个线程的sql执行时,就直接报错,而不会去执行sql。

最终的解决方法就是解决那条问题线程,肯定是哪里出错才会保留报错信息,或者升级druid的版本。

我也发现这个问题

跟了一下源码

removeAbandonedTimeout

这个属性不管是否配置

初始化init方法调用后

removeAbandonedTimeout的值是 300000

也就是使用的DruidAbstractDataSource里面的默认值

protected volatile boolean removeAbandoned;

protected volatile long removeAbandonedTimeoutMillis = 300 1000;

现针对数据库密码加密方面,利用druid进行数据库加密,实现项目配置文件中数据库密码密文存储,一定程度上保证了数据安全。

配置方法:

1、数据源配置[spring-mybatisxml文件]

<!-- 配置数据源 -->

<bean name="dataSource" class="comalibabadruidpoolDruidDataSource"

init-method="init" destroy-method="close">

<property name="driverClassName" value="${jdbcdriver}" />

<property name="url" value="${jdbcurl}" />

<property name="username" value="${jdbcusername}" />

<property name="password" value="${jdbcpassword}" />

<!-- 配置初始化大小、最小、最大 -->

<property name="initialSize" value="${jdbcpoolinit}" />

<property name="minIdle" value="${jdbcpoolminIdle}" />

<property name="maxActive" value="${jdbcpoolmaxActive}" />

<!-- 配置获取连接等待超时的时间 -->

<property name="maxWait" value="60000" />

<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->

<property name="timeBetweenEvictionRunsMillis" value="60000" />

<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->

<property name="minEvictableIdleTimeMillis" value="300000" />

<property name="validationQuery" value="${jdbcvalidationquery}" />

<property name="testWhileIdle" value="true" />

<property name="testOnBorrow" value="false" />

<property name="testOnReturn" value="false" />

<!-- 打开PSCache,并且指定每个连接上PSCache的大小(Oracle使用)

<property name="poolPreparedStatements" value="true" />

<property name="maxPoolPreparedStatementPerConnectionSize" value="20" /> -->

<!-- 配置监控统计拦截的filters -->

<!--<property name="filters" value="stat" /> -->

<property name="filters" value="${jdbcfilters}" />

<property name="connectionProperties"

value="${jdbcconnectionProperties}"/>

</bean>

DRUID是阿里巴巴开源上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池(据说是目前最好的连接池,不知道速度有没有BoneCP快)。

1pomxml

2yml文件配置

3访问

启动项目,访问druid管理页面- localhost:8080/druid/loginhtml,登录的用户名和密码,我在yml配置成test,所以用test登录就行,登录后页面如下:

举个例子

连接数据库查询表的相关语句:

ClassforName("commicrosoftjdbcsqlserverSQLServerDriver");

Connection conn=DriverManagergetConnection("jdbc:microsoft:sqlserver://127001:1433;DatabaseName=mytest","sa","123");

Statement stmt=conncreateStatement();

ResultSet rs=stmtexecuteQuery("select from userinfo");

while(rsnext())

以上就是关于druid 初始化连接数不够是 要设置哪些参数创建数据库连接全部的内容,包括:druid 初始化连接数不够是 要设置哪些参数创建数据库连接、Druid连接池原理、在使用druid数据库连接池执行后为啥会出现出现无效的源发行版14等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10157484.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存