Postgresql:prepared statement "S_1" already exists

本文介绍了一种解决Java应用连接PgSQL时出现预编译语句重复错误的方法。通过在JDBC连接字符串中添加参数prepareThreshold=0,成功避免了预编译语句S_1重复的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近期由于业务需要和一些json的存储查询需要,把新的应用切到pgsql上来,刚刚切好,是可以正常使用的,但是偶尔会来一下

java连接pgsql 偶尔出现 这个错。
 
org.postgresql.util.PSQLException: ERROR: prepared statement "S_1" already exists 
 
检查sql语句,几乎没问题,又看设置,实在找不到哪里有问题
 
百度网上的资料太少了,干脆我写一篇,方便以后遇到此问题的朋友 解决问题,不用翻来覆去找了
 
经过仔细查阅pgbouncer官方文档 
找到了方法
 

Disabling prepared statements in JDBC

The proper way to do it for JDBC is adding prepareThreshold=0 parameter to connect string.

 在配置文件上加上

jdbc.url=jdbc:postgresql://xxxxx:6432/finance_log?prepareThreshold=0

再次启动,S_1这样的错误几乎找不到了。OK

附官方说明
https://pgbouncer.github.io/faq.html#what-should-my-serverresetquery-be

https://jdbc.postgresql.org/documentation/head/connect.html

转载于:https://www.cnblogs.com/fangyuan303687320/p/6033526.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值