Java 中 Postgresql 数据库的编程连接有效性检查

F. *_*mir 2 java postgresql database-connection jdbc

我有一个独立的 java 应用程序,可以在 postgresql 数据库上进行一些数据库读/写业务。我使用了 java.sql.Connection 对象上可用的 isValid 函数来重新建立数据库连接,以防万一由于网络问题/崩溃而丢失/失败。下面的代码片段很快就展示了这个想法:

  //dbConnection is an instance of java.sql.Connection

  if(dbConnection.isValid(1)){
     reEstablishConnection();
  }
Run Code Online (Sandbox Code Playgroud)

尽管如此,在运行时,我在上述 if 块的条件下遇到异常,表示方法“isValid”尚未实现。我使用的是最新的 JDBC 驱动程序 (v9.1-101),我的 postgesql DBMS 版本是 8.3.9。我在 SUSe Linux(SLES 11 SP2 - 64 位)上使用 Yast2 安装了它。有人能告诉我如何检查连接是否在 Java 中以编程方式丢失以用于 postgresql?我的意图是在没有用户干预的情况下自动重新连接。

bpg*_*rgo 5

您可以实现自己的连接有效性检查功能(例如"select 1",如果从 db 返回 1 且没有错误,则执行并返回 true)。

但是,我建议您使用连接池,我建议您使用Apache Tomcat Pool,它将为您处理连接的有效性检查(以及许多其他事情)