druid连接derby数据库报错的问题——2016.12.06

在使用Druid连接Derby数据库时遇到初始化错误,报错信息为'Encounter "<EOF>"'。问题出在validationQuery配置上,初始配置为SELECT 'x'导致错误。修改为SELECT 1后,连接池正常运行,但可能导致无连接验证。通过调整testWhileIdle属性为true并设置合适的validationQuery,解决了连接验证问题。
摘要由CSDN通过智能技术生成
背景描述:根据项目需求,使用druid连接池连接mysql数据库和derby数据库;
问题描述:在derby数据库环境下报错:init dataSource error Encounter "<EOF>" at~~~。
分析方法:初始化数据时报错,应为配置文件中有错误,分段屏蔽配置文件,确认产生报错的配置项为:validationQuery:SELECT 'x'。
将该配置项注释后又报错:testWhileIdle is true,validataionQuery not set。根据字面意思将testWhileIdle修改为false不再报错,工程正常运行。
但此时数据库将不再进行连接验证,存在一定的风险。查阅相关资料后发现,不同的连接池连接不同的数据库时有不同的测试语句(即validateionQuery)。再结合报错信息(Encounter"<EOF>")即启动数据库时发生了sql语句语法错误且与引号相关。确认为select 'X'错误。根据资料将该测试语句修改为values 1 数据库正常启动运行。
修改后的配置
dbconfig.properties
url:jdbc:derby://localhost:1527/dbName
driverClassName:org.apache.derby.jdbc.ClientDriver
username:app
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值