<property name="validationQuery" value="SELECT 'x'" />
这句话没有执行成功。这写法顶多是mysql能成功,你如果是oracle,要写一个oracle能通过的语句,比如select count() from xxx
JNDI学习总结(三)——Tomcat下使用Druid配置JNDI数据源
comalibabadruidpoolDruidDataSourceFactory实现了javaxnamingspiObjectFactory,可以作为JNDI数据源来配置。
一、下载Druid的jar包
下载地址:>
druid api这么说:
我们不是搜索领域的专家,如果我们的描述不正确,请发邮件或者通过其他方式告知。
es 是一个基于apache lucene 的搜索引擎。它提供了针对scheme-free 文档的全文搜索,提供看了对原始事件数据的访问。eses逐渐的增加了更多对于Fenix和聚合的支持。一些社区的成员指出:
es相比druid,在数据的获取和聚合方面需要的资源更多。
另外 es 在数据获取阶段不支持数据的汇总和汇聚,汇总和汇聚压缩数据。这就导致了es 需要更大的存储。
druid 致力于OLAP 工作流。druid 在低成本的基础上为了高性能(快速的聚合和数据获取)做了优化,而且支持更多的分析 *** 作。对于结构化的事件数据,druid 也有一些基础的搜索的支持,但是不支持全文的搜索。druid 也不支持完全的非结构化的数据。查询的维度必须在drudi的schema中进行定义,比如 汇总和roll-up 的实现。
<obj name="dataSource" type="comalibabadruidpoolDruidDataSource">
<field name="driverClassName"><str>oraclejdbcdriverOracleDriver</str></field>
<field name="url"><str>jdbc:oracle:thin:@127001:1521:tsoc</str></field>
<field name="username"><str>user</str></field>
<field name="password"><str>123456</str></field>
<field name="maxActive"><int>500</int></field>
<field name="minIdle"><int>30</int></field>
<!-- 配置获取连接等待超间 -->
<field name="maxWait"><int>10000</int></field>
<!-- 配置间隔久才进行检测检测需要关闭空闲连接单位毫秒 -->
<field name="timeBetweenEvictionRunsMillis"><int>60000</int></field>
<!-- 配置连接池存间单位毫秒 -->
<field name="minEvictableIdleTimeMillis"><int>300000</int></field>
<field name="testWhileIdle"><bool>true</bool></field>
<field name="testOnBorrow"><bool>false</bool></field>
<field name="testOnReturn"><bool>false</bool></field>
<field name="defaultAutoCommit"><bool>true</bool></field>
<field name="validationQuery"><str>select 1 + 1</str></field>
</obj>
补充:数据库连接并没耗尽使用select from v$session才36使用其测试程序或者客户端工具都连接数据库
转载仅供参考!
使用druid连接池时,有时查询超时,慢,设置的minIdle也算合理。通过监控发现,池中连接+活动连接数很小了,也小于minIdle。原因可能是部分连接被销毁了,譬如因为查询报错。此时若查询徒增,则要临时创建新连接,故造成慢。如果需要连接保持在至少minIdle,则druid版本必须升级到1027以上(不包括),同时创建配置添加属性druidkeepAlive=true
Druild包获取
Maven工程中添加druid依赖包:
<!-- >
mybatis是警察
druid是武器库(有很多q)
jdbc是武器商(他们造q给武器库)
当你需要一次"除暴安良"时,你需要去找警察,警察从武器库拿q干活
以往的开发,是你使用jdbc直接造q,然后自己干活
jdbc整合了:加载数据库驱动,创建连接,写原生语句,执行,关闭这些东西
而mybatis是对jdbc的封装,他允许你通过配置的形式,配置数据库参数,并且允许你通过xml来写动态sql语句<if:test>让你可以把sql变得灵活起来并且还能将你的查询结果直接映射到你想要的实体上面
然后你就去配置你的用户名,密码,连接超时,等等
等你下次使用mybatis时,他后面会根据你的配置,帮你加载数据库驱动,创建连接,写原生语句,执行,关闭
但是mybatis发现,在你每次访问都要重新创建创建连接,写,关很麻烦,所以mybatis说,我可以接受你再配置一个连接池,比如druid
mybatis让你指定连接池是谁,如druid之后将原来自己需要搞的东西都交给druid什么账号了,密码了都给他,让druid帮你创建一批连接,在你需要用的时候,mybatis从druid里面拿一个就行
下面是一次简单的访问流程:
controller->service->dao->mapper
1首先项目启动时druid就已经使用jdbc创建好一堆连接了,留待后用
2当请求到mapper时,mybatis框架创建临时类
3然后将动态sql进行替换重写,变成原始的native sql
4从druid拿到一个连接
5将sql通过连接交给数据库执行
6然后获取执行结果
7mybatis进行将结果进行映射,返回数据
说的有点乱,希望能说清楚吧
以上就是关于使用druid,启动时报错 validateConnection false全部的内容,包括:使用druid,启动时报错 validateConnection false、tomcat jdbc和druid对比,各自有哪些优缺点、druid vs elasticSearch druid 和es 对比等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)