com.alibaba.druid.sql.parser.ParserException: syntax error, expect xxx, actual xxx pos xx问题解决

本文分析了在使用Druid1.2.5连接PostgreSQL时遇到的SQL解析错误,推荐升级到1.2.6及以上版本,解决配置差异,注意参数限制,以及避免关键字冲突以提高性能和代码健壮性。
摘要由CSDN通过智能技术生成

问题描述:在使用druid1.2.5jar包时,原接口的复杂sql在postgre测试库中运行无问题在代码中运行会抛出

com.alibaba.druid.sql.parser.ParserException: syntax error, expect xxx, actual xxx pos xx

对于代码运行结果有时候无影响,当数据量大时会影响性能从而导致

Caused by: org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.

原因有以下几个方面(供参考):

1.druid的jar包版本过低建议换成1.2.6以上版本 (亲测1.2.8版本有效),部分1.2.6版本的jar包日志抛出的版本信息还是1.2.5,但整体是1.2.6的功能,可以参考官方文档

2.pg库的配置问题或druid的配置问题,这个数据库对比传统mysql数据库有一些配置差异,可以参考如下配置进阶数据库系列(二):PostgreSQL 目录结构与配置文件 postgresql.conf 详解_mingongge的博客-CSDN博客

3.sql语句参数过多,pgsql最大参数设置为32767,超过上限也会影响

PGSQL的参数超过上限总结_xiaowangbadan0_0的博客-CSDN博客

4.sql语句在合并时检测到关键字,可能是字段与关键字冲突,也可能是别名与关键字冲突,(可以使用工具查看,关键字的颜色不一样)

总结:格式转换异常对sql执行可能没影响,但为了美观或代码健壮性,避免数据量大的时候诱出IO异常或其他异常还是需要解决一下,希望可以帮到大家

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值