java.sql.SQLException:Unexpected exception encountered during query

今天遇到了这个问题,快把我搞吐了,我的idea是2020最新版本的,在引入jar包时,我引入的是

mysql-connector-java-5.1.18-bin.jar

这个版本的,后来我换成了

mysql-connector-java-5.1.47.jar

但还是不行,我又去看是不是语法问题,也不是,然后几乎把所有的jar包都升级了,但还是不行,(心态炸裂)

我又新建了一个项目,只把与数据库连接相关的jar包导入,然后把原项目中于此相关的类,servlet,。。都复制了过来,只让实现数据库这个功能,其它都注释,终于成功了,此时在把原项目中的其它包也导过来,在试,成功,于是把原项目中的 lib文件,重新替换成新的那个lib文件夹,在原项目中调试,失败,我把其它的无关功能注释,在尝试,成功,然后在把注释取消,在尝试,成功

我怀疑是idea本身的缓冲问题,下次遇到这种问题,可以尝试把有问题的那部分,放到一个新的项目中,在去调试,排除其它元素的干扰

问题代码块

@WebServlet("/provinceServlet")
public class ProvinceServlet extends HttpServlet {
   
   
    @Override
    protected void 
在引用中未找到关于解决 java.sql.SQLException 中因 javax.net.ss1.SSLException(连接重置)导致错误检索记录问题的相关内容。不过一般来说,对于此类问题可以从以下几个方面尝试解决: ### 网络层面 - **检查网络连接稳定性**:不稳定的网络可能导致连接重置。可以尝试使用网络诊断工具,如 `ping` 和 `traceroute` 检查与数据库服务器之间的网络连接是否正常。 ```bash ping <数据库服务器IP> traceroute <数据库服务器IP> ``` - **检查防火墙设置**:防火墙可能会阻止 SSL 连接。需要确保数据库服务器的端口(通常是 SSL 端口)在防火墙中是开放的。 ### 数据库层面 - **检查数据库服务器配置**:确保数据库服务器的 SSL 配置正确,包括证书是否有效、SSL 协议版本是否兼容等。 - **检查数据库连接池配置**:如果使用了连接池,可能是连接池的配置问题导致连接重置。可以尝试调整连接池的参数,如最大连接数、最小空闲连接数等。 ### 代码层面 - **增加重试机制**:在代码中增加重试逻辑,当遇到连接重置异常时,尝试重新连接并执行查询。 ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class RetryExample { private static final int MAX_RETRIES = 3; public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/mydb"; String user = "root"; String password = "password"; int retries = 0; while (retries < MAX_RETRIES) { try (Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM mytable")) { while (rs.next()) { // 处理结果集 System.out.println(rs.getString(1)); } break; } catch (java.sql.SQLException e) { if (e.getCause() instanceof javax.net.ssl.SSLException) { retries++; System.out.println("Connection reset, retrying... (" + retries + ")"); } else { e.printStackTrace(); break; } } } } } ``` ### 证书层面 - **检查客户端证书**:确保客户端使用的证书是有效的,并且与数据库服务器的证书兼容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值